无法为本学期的最后一个实验室正确读取文件,并且在读取实际文件时一直遇到问题

所以我们有一个实验室要做,它涉及读取文件和所有有趣的东西。


这是 txt 文件的样子:


Name0

22

1.2

Name1

22

2.71

Name2

19

3.51

Name3

18

3.91

Name4

20

1.6

Name5

19

1.03

Name6

18

3.78

Name7

19

3.19

Name8

18

2.37

Name9

21

1.01

我发布了应该尝试读取此信息的代码。谢谢你的时间!


我试过改变一些东西并用谷歌搜索异常但没有运气


    public void readFile()

    {

        //ran intill exception caught

        try

        {

            //finds the student.txt file to read using scanners

            Scanner s = new Scanner("Students.txt");


            while(s.hasNextLine())

            {

                //sets a string name to the first string (First text in 

students is name)

                String name = s.next();

                //looks for a line with a int value and then sets it to 

age

                int age = s.nextInt(); 

                //scans the next line for a double and sets it to gpa


                double gpa = s.nextDouble();

                //creates a new student object and passes what the file 

read into parameters

                Student studentOne = new Student(name , age, gpa);

                //adds new student to array list

                students.add(studentOne);

            }

            s.close();

        }

        // if an exception is caught it will print

        catch(Exception e)

        {

            System.out.println(e);

        }

    }

我相信它应该读取信息并将其存储在受尊重的类别中,因为我们知道它是根据文本文件按此顺序进行的,但是当我运行该方法时,我得到了 java.util.NoSuchElementException


阿波罗的战车
浏览 65回答 1
1回答

跃然一笑

您收到NoSuchElementException是因为在对象上调用nextInt()和nextDouble()方法Scanner不会读取换行符(点击返回时创建的字符) - 请参阅此答案。要解决此问题,您可以执行以下操作:public void readFile() throws IOException {    try (Scanner s = new Scanner(new FileReader(new ClassPathResource("Students.txt").getFile()))) {        while (s.hasNextLine()) {            String name = s.nextLine();            int age = Integer.parseInt(s.nextLine());            double gpa = Double.parseDouble(s.nextLine());            Student studentOne = new Student(name, age, gpa);            students.add(studentOne);        }    }}注意 - 上面的代码假定该Students.txt文件在您的类路径中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java