Java:线程中的异常";“主要”;java.util.NoSuchElementException
我得到一个错误列表:Java:线程中的异常";“主要”;java.util.NoSuchElementException,java,exception,Java,Exception,我得到一个错误列表: Exception in thread "main" java.util.NoSuchElementException at java.util.Scanner.throwFor(Scanner.java:907) at java.util.Scanner.next(Scanner.java:1416) at StudentGrade.main(StudentGrade.java:21) 我从Java编程书中复制了一个示例程序,以找出为什么我不能让
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:907)
at java.util.Scanner.next(Scanner.java:1416)
at StudentGrade.main(StudentGrade.java:21)
我从Java编程书中复制了一个示例程序,以找出为什么我不能让我的其他程序工作,而我必须使用这个程序作为基础
import java.io.*;
import java.util.*;
public class StudentGrade
{
public static void main(String[] args) throws
FileNotFoundException
{
double test1, test2, test3, test4, test5;
double average;
String firstName;
String lastName;
Scanner inFile =
new Scanner(new FileReader("test.txt"));
PrintWriter outFile = new
PrintWriter("testavg.out");
firstName = inFile.next();
lastName = inFile.next();
outFile.println("Student Name: "
+ firstName + " " + lastName);
test1 = inFile.nextDouble();
test2 = inFile.nextDouble();
test3 = inFile.nextDouble();
test4 = inFile.nextDouble();
test5 = inFile.nextDouble();
outFile.printf("Test scores: %5.2f %5.2f %5.2f "
+ "%5.2f %5.2f %n", test1, test2,
test3, test4, test5);
average = (test1 + test2 + test3 +test4
+ test5) / 5.0;
outFile.printf("Average test score: %5.2 %n",
average);
inFile.close();
outFile.close();
}
}
我将test.txt文件与java文件放在同一文件夹中。但是它没有任何数据。您没有检查下一个位置是否有元素 ie:在读取数据之前,必须确保下一个位置有一个元素 使用此
infle.hasNext()
如果只存在下一个元素,则必须使用infle.next()
或infle.nextDouble()
如果编译器读取该文件并执行infle.next()
,那么它实际上希望在该位置有一个元素。当它不返回任何内容时,它会生成一个NoTouchElementException
简言之,阅读一些不存在的价值产生
NoTouchElementException
您的“test.txt”是否具有相同顺序的数据?。“java.util.NoSuchElementException”则相反。请尝试手动计算test.txt文件的行数,并确保读取的数据类型正确(String、String、double、double,…),尝试使用infle.nextLine()。我在test.txt文件中没有任何数据。我想我需要一个文件结束异常,但我不知道如何编写它。“我在test.txt文件中没有任何数据。”。。这就是为什么它抛出了无接触的例外。它如何读取不存在的值?