Бесконечный цикл на Scanner.hasNext, чтение из файла

Я, очевидно, сталкиваюсь с бесконечной петлей наwhile(input.hasNext()) как в следующем коде

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);

Некоторые связанные вопросы объясняют, почему он всегда возвращает true, если входной потокSystem.inОднако я сканирую черезFile.

Пожалуйста, дайте мне знать, где я иду не так.

Я пытаюсь вычислить сумму уникальных целочисленных значений (разделенных пробелами, где они встречаются).

Редактировать:

Урок выучен,input.hasNext() не перемещает указатель на следующую строку, и, следовательно, сканер не перемещается дальше любого ввода. Как объясняется в ответах на этот вопрос, а такжеВот .

Ответы на вопрос(3)

Ваш ответ на вопрос