提问人:lakey dons 提问时间:4/9/2023 最后编辑:lakey dons 更新时间:4/9/2023 访问量:33
文本文件中间没有此类元素异常
No Such Element Exception in the middle of a text file
问:
我目前正在尝试编写 Java 代码,该代码将读取包含各种琐事问题的 .txt 文件,并将提示、正确答案和其他答案选项存储在 Question 对象中。现在写我不担心将这些值放在对象中,只需正确扫描问题即可。此代码应该扫描.txt文件。如果该行以“#”开头,则表示其问题提示,然后继续扫描几行并存储答案选项。如果答案选项只有两个选项,它会跳过该问题(只需要 4 个选项多项选择题)。最后,文件中的每个问题都应以原始格式打印在.txt文件中。
import org.w3c.dom.Text;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;
public class TextReader {
ArrayList<Question> questions = new ArrayList<>();
public static void main(String[] args) throws FileNotFoundException{
File file = new File("animals.txt");
TextReader.parseFile(file);
}
public static void parseFile(File file) throws FileNotFoundException{
ArrayList<Question> questions = new ArrayList<>();
String category = file.getName();
Scanner s = new Scanner(file);
while (s.hasNextLine()){
String string = s.nextLine();
if(string.length() > 0 && string.charAt(0) == '#'){ //checks for start of a question
System.out.println(string);
String correct = s.nextLine(); //scans correct answer
System.out.println(correct);
String a = s.nextLine(); //scans answers choices
System.out.println(a);
String b = s.nextLine();
System.out.println(b);
String c = s.nextLine();
System.out.println(c);
if(c.isEmpty()){ //checks if only has two answers (i.e true or false, yes or no), then goes to next questions
s.nextLine();
}else{
String d = s.nextLine();//scans last answer choice
System.out.println(d);
}
}
}
}
}
我现在正在使用这个.txt文件。它读取了所有内容,直到第 690 行,代码在读取问题的选项 C 的过程中抛出 NoSuchElementException 错误。
#Q The Chihuahua Gidget is famous for what reason?
^ It was a mascot for Taco Bell.
A Paris Hilton has it as a pet.
B It was a fill-in mascot for the Georgia Bulldogs.
C It was a mascot for Ta
Exception in thread "main" java.util.NoSuchElementException: No line found
无论我是否删除这个问题,或者如果我删除它之前的每个问题并将其放在开头,我都会不断收到此 NoSuchElement 异常,即使它位于 .txt 文件的中间。文件中这一点之后的所有内容都会引发该错误,我不确定为什么,其他.txt文件也会发生这种情况。
答: 暂无答案
评论