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文件中没有任何数据。”。。这就是为什么它抛出了无接触的例外。它如何读取不存在的值?