Бесконечный цикл на 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()
не перемещает указатель на следующую строку, и, следовательно, сканер не перемещается дальше любого ввода. Как объясняется в ответах на этот вопрос, а такжеВот .