Bucle infinito en Scanner.hasNext, leyendo desde un archivo
Aparentemente estoy enfrentando un bucle infinito enwhile(input.hasNext())
, como en el siguiente código
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);
Algunas preguntas relacionadas explican por qué siempre devuelve verdadero si la secuencia de entrada esSystem.in
, sin embargo, estoy escaneando a través de unFile
.
Por favor, hágame saber a dónde voy mal.
Estoy tratando de calcular la suma de valores enteros únicos (espacio delimitado donde ocurren).
Editar:
Lección aprendida,input.hasNext()
no mueve el puntero a la siguiente línea y, por lo tanto, el escáner no avanza más allá de cualquier entrada. Como se explica en las respuestas a esta pregunta, así comoaquí .