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

Respuestas a la pregunta(3)

Su respuesta a la pregunta