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 .

questionAnswers(3)

yourAnswerToTheQuestion