while((in.hasNextLine())){
list.add(new Task(in.next(),in.next(), in.hasNextBoolean()));
}
我一直没有得到这样的元素异常。如果我像这样采取while循环
list.add(new Task(in.next(),in.next(), in.hasNextBoolean()));
它运行正常,但我只能添加文本文件的第一行。 循环或扫描仪有问题吗?
try {
in = new Scanner(f1);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
while((in.hasNextLine())){
list.add(new Task(in.next(),in.next(), in.hasNextBoolean()));
}
f1声明为File f1 = new File(“src / mylist.txt”);
任何帮助都会很棒!谢谢!
答案 0 :(得分:1)
NoSuchElementException
中的in.next()
抛出了{p> list.add(new Task(in.next(),in.next(), in.hasNextBoolean()))
个异常。
和in.next()
,如果您不使用Pattern
中的任何Scanner
来匹配下一个令牌。它将使用默认Pattern
private static Pattern FIND_ANY_PATTERN = Pattern.compile("(?s).*")
来匹配整行。它会导致in.next()
读取整行。
所以list.add(new Task(in.next(),in.next(), in.hasNextBoolean()))
会抛出NoSuchElementException
,你已经阅读了两次,但你只检查了一次。