java - NoSuchElementException 从文件中读取单词和数字

标签 java file exception

我正在尝试从包含多行“名称、整数月份、整数日期、整数年份”信息的文件中读取数据。 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/

相关文章:

嵌套 'finally' block 中的 Java 'try' 子句

Java:如何扫描最高数字的ide输出?

java - java中Systemloader、bootstraploader和ExtensionLoader有什么区别?

c# - 清除文件内容

Python游戏保存文件

ios - UIPageViewController NSInternalInconsistencyException

c++ - 在 Linux 上的 C++ 无限循环中捕获内存不足的错误 bad_alloc()

java - Firestore Android 分页中的 ArrayIndex 错误

java - 在java中存储字符串值

android - 输入类型 ="file"接受 ="image/*"在电话间隙中不起作用?