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.
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.