Loop infinito em Scanner.hasNext, lendo de um arquivo
Aparentemente, estou enfrentando um loop infinito emwhile(input.hasNext())
, como no código a seguir
File file = new File("data.txt");
Scanner input = new Scanner(file);
int sum = 0;
while (input.hasNext()) {
if (input.hasNextInt()) {
sum += input.nextInt();
}
}
System.out.println(sum);
Algumas questões relacionadas explicam por que sempre retorna true se o fluxo de entrada éSystem.in
, no entanto, estou digitalizando através de umFile
.
Por favor, deixe-me saber onde estou errado.
Estou tentando calcular a soma dos valores inteiros exclusivos (espaço delimitado onde eles ocorrem).
Editar:
Lição aprendida,input.hasNext()
não move o ponteiro para a próxima linha e, portanto, o scanner não passa por nenhuma entrada. Conforme explicado nas respostas a esta pergunta, bem comoaqui .