[Ajuda] Problemas com leitura e arquivo

Pessoal, gostaria que me ajudassem.

Estou lendo um arquivo txt e estou usando o seguinte laço para varrer até o fim do arquivo:

                            while((leitor.read())!=-1) {
		linha = leitor.readLine();
	} 

Porem devido a condição do while ele sempre pega o primeiro caracter, e quando dou o readline a linha vem faltando o primeiro caracter, gostaria que me ajudassem com isso.

Grato,
Victor Torres

Não sei o que pode estar acontecendo, mas eu faço a leitura assim:


String caminho = "arquivo.txt";
FileReader reader = new FileReader(caminho); 
BufferedReader leitor = new BufferedReader(reader);
String linha = null;
String[] campos = null;

       while((linha=leitor.readLine())!=null) {
           System.out.println(linha);
      }

Tente assim e vê se resolve:

String linha; while((linha = leitor.readLine()) != null) { // Code here }
Blz? Flw! :thumbup:

Java != Pascal
Java != iostreams (C++)
Em Pascal você usa o EOF para testar o fim de um arquivo, e em C++ você usa o “failbit” para checar a mesma coisa. Só que em Java você faz exatamente como o von.juliano lhe ensinou.

Se, por algum motivo, sua religião* não permite uma atribuição dentro de uma condição de um while, você pode tentar:

for (String linha = leitor.readLine(); linha != null; linha = leitor.readLine()) {
	// Code here
}
  • Eu falei “religião” mas é que há empresas, como o Bradesco, que exigem que o código Java seja submetido a uma auditoria com o PMD e/ou Checkstyle, e estipulam a regra “não permitir atribuições dentro de condições”. Neste caso, embora haja um pouco de código redundante, essa regra é obedecida.