我正在尝试从包含多行“名称、整数月份、整数日期、整数年份”信息的文件中读取数据。 Person 对象将这些项作为其构造函数参数。但是,当我尝试从文件中读取并填充列表时,出现以下错误:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at lab03.PersonSort.populate(PersonSort.java:56)
at lab03.PersonSort.main(PersonSort.java:38)
这是我的代码:
public static void main(String[] args) throws Exception {
ArrayList<Person> people = new ArrayList<Person>();
populate(people);
//selectionSort(people);
int index = 0;
while (index < people.size())
{
System.out.println(people.get(index));
index++;
}
}
public static ArrayList populate(ArrayList<Person> array) {
final String PERSON_FILE = ".\\src\\Persons.txt";
Scanner input = new Scanner(PERSON_FILE);
while (input.hasNext()) {
String name = input.next();
int month = input.nextInt();
int day = input.nextInt();
int year = input.nextInt();
Person temp = new Person(name, month, day, year);
array.add(temp);
}
return array;
}
persons.txt 文件包含以下内容:
梅里 9 10 1998
以利亚 3 19 2013
克里斯汀 7 29 1981
安妮 8 28 2002
贝拉 8 28 2010
马特 9 11 1952
卡西迪 8 5 1997
最佳答案
原因是您正在尝试解析字符串“.\\src\\Persons.txt”而不是文件的内容。编写 Scanner input = new Scanner(new File(PERSON_FILE).toPath());
应该可以修复它。
关于java - NoSuchElementException 从文件中读取单词和数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32427444/