Problemas ao tentar ler arquivo com BufferedReader

Boa tarde amigos,

Sei que existem centenas de tópicos falando sobre o assunto, mas olhei até na documentação http://download.oracle.com/docs/cd/E17409_01/javase/6/docs/api/ e não achei minhas respostas,

Estou tentando ler um arquivo txt, que tem linhas em branco, por exemplo

Primeira linha do meu txt


Quarta linha do meu txt

Eu aprendi a manipular aquivos lendo um tutorial que eu achei aqui no GUJ, meu código é exatamente igual da uma olhada:

   ...
     void ReadFile(){
 
        try {
           String linha = null;
           FileReader reader = new FileReader("c:\reader.txt");
           BufferedReader leitor = new BufferedReader(reader);
           while((linha = leitor.re) !=null ) {
            System.out.println(linha);

           leitor.close();
           reader.close();
           }
           }catch(IOException e){
           e.printStackTrace();
                  }
}

O meu problema é que, quando eu leio um txt, que tem linhas em branco, assim como no exemplo que eu citei acima, ele le a primeira linha e da um erro, se eu leio um txt que tem várias linhas, mas não tem linhas em branco, ele le todas as linhas e não me retorna erro nenhum. O que eu posso estar fazendo de errado? Tem algum outro método para leitura de arquivos??

Obrigado desde já

            while((linha = leitor.re) !=null ) {  
             System.out.println(linha);  
   
            leitor.close();  
            reader.close();  
            }  

Você copiou seu programa direitinho para a gente ver?
Aqui ele diz que você lê uma linha, então fecha o arquivo de entrada e de saída logo em seguida.
A seguir, você tenta ler de um arquivo fechado (que é o arquivo “leitor”), e então vai receber um erro.
É isso mesmo que você quer?
Por acaso você não fechou o “while” no lugar errado?

Dica: use sempre uma IDE (como o Eclipse ou o NetBeans) e use o recurso de auto-formatação (no Eclipse é Ctrl+Shift+F) para você poder ver se está fazendo algum erro do tipo “fechei o while no lugar errado”.

Se você sempre deixar seu código bonitinho e bem-formatadinho, vai conseguir pegar tais erros de “fechar o while no lugar errado” só de olhar seu programa.

Muito obrigado amigo,

foi pura falta de atenção minha, fechei o while da forma correta, e resolveu o problema, vlw kra.

Não estou usando IDE nenhuma , uso o Joe Own’s editor kkkkkkkkkk, mas vou adotar o Netbeans, eu acho …