[英]Not sure why i'm getting an java.util.NoSuchElementException error
[英]Why do I get a java.util.NoSuchElementException, when I'm trying to use the scanner
因此,我尝试读取其中包含名称的文件,并且希望列出文件中所有人员的名单。 文本文件名为people.txt,其结构为:姓氏/姓氏\\ nsurname /姓氏,依此类推。 该文件应位于正确的位置。
码:
public class UI {
public static void main(String[] args) {
String naam;
ArrayList <Person> people = new ArrayList<>();
Scanner sc = new Scanner("people.txt");
while(sc.hasNextLine()) {
Scanner line = new Scanner(sc.nextLine());
line.useDelimiter("/");
String name = line.next();
String surname= line.next();
Person a = new Person(name, surname);
people.add(a);
}
System.out.println(people.size());
}
错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at domain.UI.main(UI.java:14)
问题在这里:
Scanner sc = new Scanner("people.txt");
这不会使新的Scanner
从名为people.txt的文件中获取信息。 它会创建一个新的Scanner
,它实际上包含文本“ people.txt”。 由于只有一行,因此当您尝试获取第二行时会引发错误。
听起来您想使用以下构造函数:
在Class Scanner中使用Interface Path对象的位置。
Path p1 = Paths.get(“people.tx”);
Scanner sc = new Scanner(p1);
您不是在阅读文件,而是在阅读文本"people.txt"
,因此是line.useDelimiter("/");
没有效果。 由于String name = line.next();
而导致出现错误String name = line.next();
消耗文本"people.txt"
,没有文本,并且String surname= line.next();
抛出异常
您需要使用如下所示的java.io.File
:
Scanner sc = new Scanner(new File("pathToFile/people.txt"));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.