Java 使用专门的 txt 文件输入不匹配异常

Java Input Mismatch Exception with a specialized txt file

我正在编写一个程序,我需要扫描一个 txt 文件。 txt 文件保证在出现不同类型的位置和时间方面遵循特定格式。我尝试在我的程序中利用这一点,并使用扫描仪将我知道是整数的部分与双精度数和字符串一起放入整数中。当我 运行 我的程序它告诉我我有一个类型不匹配异常时,我知道由于 txt 文件的格式,我的所有类型都匹配所以我如何让 IDE 认为这是好的。这是有问题的代码块,对您有帮助。

ArrayList<Student>studentList=new ArrayList<Student>();//makes a new Array list that we can fill with students.
    FileInputStream in=new FileInputStream("studentList.txt");//inputs the text file we want into a File Input Stream
    Scanner scnr=new Scanner(in);//Scanner using the Input Stream
    for(int i=0;i<scnr.nextInt();i++)//we know the first number is the number of minor students so we read in a new minor that number of times
    {
        Undergrad j=new Undergrad();//make a new undergrad
        j.setDegreeType("MINOR");//make the degree type minor because we know everyone in this loop is a minor.
        j.setFirstName(scnr.next());//we know the next thing is the student's first name
        j.setLastName(scnr.next());//we know the next thing is the student's last name
        j.setID(scnr.nextInt());//we know the next thing is the student's ID
        j.setGPA(scnr.nextDouble());//we know the next thing is the student's GPA
        j.setCreditHours(scnr.nextDouble());//we know the next thing is the student's credit hours
        studentList.add(j);//Finally, we add j to the arraylist, once it has all the elements it needs
    }

计算机程序完全按照告诉他们的去做。

如果您创建了一个需要特定输入的程序,并且该程序告诉您 "unexpected input";那么恰好是两个合乎逻辑的解释:

  1. 您对输入布局(您放入程序中的布局)的假设是错误的
  2. 假设是正确的,但不幸的是输入数据并不关心那个

长话短说:不是 IDE 弄错了。

因此这里的"strategy"是:

  1. 在编辑器中打开您的文本文件
  2. 在 IDE
  3. 中打开源代码
  4. 运行 调试器;或 "run your code manually";含义:一条一条地完成指示;对于每个扫描仪操作,检查扫描仪应该 return;以及文件在那个地方实际包含的内容