Я пытаюсь найти способ справиться с ошибкой NoSuchElementException, генерируемой объектом Scanner при чтении последнего элемента в моем текстовом файле с NO SPARE LINE. Это означает, что мой курсор будет заканчиваться после последнего символа последней строки в файле
Пример:
score.txt
[Test; Слово |]
[&] обозначает начало и конец текстового файла
| где курсор заканчивается.
Я знаю, что если мой курсор заканчивает строку под ним, мой Сканер не сгенерирует исключение NoSuchElementException, потому что есть следующая строка.
Чего я хочу добиться, так это обеспечить, чтобы исключение NoSuchElementException не создавалось при отсутствии запасной строки. Есть ли способ предотвратить возникновение ошибки, кроме проверки наличия резервной линии?
Мой класс Driver просто вызывает метод importWordList () из класса WordGame.
Код для WordGame очень длинный, поэтому я буду загружать только метод importWordList () из класса.
public boolean importWordList(String fileName) throws FileNotFoundException
{
//Set default return value
boolean returnVal = false;
//Set File to read from
File wordListDest = new File(fileName);
if (wordListDest.canRead() == true)
{
lineS = new Scanner(wordListDest);
//Read each line from file till there is no line
while (lineS.hasNextLine())
{
//Set delimeter scanner to use delimeter for line from line scanner
String line = lineS.nextLine();
delimeterS = new Scanner(line);
delimeterS.useDelimiter(";");
//Read each delimeted string in line till there is no string
while (delimeterS.hasNextLine())
{
//Store Variables for quiz object
wordAndHint = delimeterS.nextLine();
answer = delimeterS.nextLine(); //ERROR
//Create Object Quiz and add to wordList
Quiz addWord = new Quiz(wordAndHint, answer);
wordList.add(addWord);
}
delimeterS.close();
}
lineS.close();
returnVal = true;
System.out.println("Word List has been Imported Successfully!");
}
else
{
System.out.println("The file path you selected either does not exist or is not accessible!");
}
return returnVal;
}
Ошибка возникает следующим образом:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1516)
at mysterywordgame.WordGame.importWordList(WordGame.java:74)
at mysterywordgame.Main.main(Main.java:60)
Ошибка (в mysterywordgame.WordGame.importWordList (WordGame.java:74)) относится к строке с комментарием ОШИБКА.
Я искал способы предотвращения возникновения ошибки, однако все ответы были такими: «Убедитесь, что в конце текстового файла есть лишняя строка»
Будет полезна помощь.