Я не знаю, почему это не сработает. Я дважды и тройка проверил, что файл в FileWriter имеет текст (введенный другим PrintWriter ранее в отдельной программе), но оператор while не работает. Прокомментированные строки были различными тестами, которые я выполнял, чтобы попытаться выяснить, что происходит. То, что я пытаюсь решить, - это выполнить итерацию по массиву и добавить идентификатор группы ко всем Лицам. Если кто-то знает, что это такое, мы будем очень благодарны. Я заранее извинюсь за любые ошибки в форматировании, и любые комментарии о том, как легче помочь, также будут весьма признательны.Java Scanner throws NoSuchElementException: не найдена строка
public static void updateWinners(Person[] Players, int n)
throws FileNotFoundException {
// n is 2 or 4 depending on round
File fileS = new File(
"C:\\Users\\Patrick\\Desktop\\New folder\\FileWriter\\Win");
File fileP = new File(
"C:\\Users\\Patrick\\Desktop\\New folder\\Bracket\\Win");
Scanner fs = new Scanner(fileS);
PrintWriter writer = new PrintWriter(fileP);
//int q=0;
while (fs.hasNextLine()) {
//System.out.println(Players[q].toString());
for (int i = 0; i < Players.length; i++) {
if (fs.nextLine().equals(Players[i].toString())) {
Players[i].addGroup(alpha[i/n]);
System.out.println(Players[i].toString());
writer.println(Players[i].toString());
}
}
//q++;
}
writer.close();
fs.close();
}
'если (fs.nextLine() равно (игроков [я] .ToString())) 'это проблема. –
Попробуйте выполнить печать fileS.exists() перед циклом while. Форматирование вашего пути кажется очень изворотливым со всеми этими обратными косыми чертами. Поскольку вы используете .nextLine() внутри цикла for-loop, есть вероятность, что у вас будет новая строка при запуске цикла while, но затем закончится в цикле. – SamTebbs33