Этот метод по существу является методом, который читает данный входной файл и рекурсивно заполняет двоичное дерево данной информацией.Почему я получаю исключение NoSuchElementException?
Входной файл имеет особый формат. Одна строка, содержащая либо Q:, либо A: для указания, является ли следующая строка вопросом или ответом. Предполагается, что все файлы, используемые с этим методом, будут следовать этому формату.
Поскольку каждый файл следует за одним и тем же форматом, и никогда не должно быть строк с нечетным номером, данные не должны полностью потребляться до достижения одного из вызовов nextLine()
. Тем не менее, программа последовательно выдает NoSuchElementException
.
Есть ли что-то, что мне не хватает?
private QuestionNode readHelper(Scanner input){
// Base case: If the given input has no more lines to read.
if (input.hasNextLine()) {
String category = input.nextLine();
String text = input.nextLine();
QuestionNode root = new QuestionNode(text);
if (category.startsWith("Q")) {
// Recursive case: If there are still questions available to ask
// more input is read, which replaces the currently stored data.
root.left = readHelper(input);
root.right = readHelper(input);
} else {
return root;
}
}
return null;
}
У вас есть символ конца строки после последней строки? –
Лучший способ узнать, как запустить ваш код под отладчиком шаг за шагом и изучить значения на этом пути. –
Убедитесь, что ваш файл содержит запись с правильным форматом? –