Java:我一直得到一个奇怪的输出

Java:我一直得到一个奇怪的输出,java,Java,每当我运行此代码时,我都会得到: java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Unknown Source) at java.lang.Integer.parseInt(Unknown Source) at UseEmployeeRecord.main(UseEmployeeRecord.java:24) 作为输出 // The "UseEmployeeRecord" class. import

每当我运行此代码时,我都会得到:

java.lang.NumberFormatException: null

at java.lang.Integer.parseInt(Unknown Source)

at java.lang.Integer.parseInt(Unknown Source)

at UseEmployeeRecord.main(UseEmployeeRecord.java:24)
作为输出

// The "UseEmployeeRecord" class.
import java.awt.*;
import hsa.Console;
import java.io.*;


public class UseEmployeeRecord {

   public static void main (String[] args) throws IOException {

       BufferedReader fr = new BufferedReader (new FileReade("employees.txt"));
        String name;
        int num;
        double hr, hw;

        EmployeeRecord employee[] = new EmployeeRecord [10];

        for (int i = 0 ; i < employee.length ; i++)
        {
            name= fr.readLine ();
            num = Integer.parseInt (fr.readLine ());
            hr = Double.parseDouble (fr.readLine ());
            hw = Double.parseDouble (fr.readLine ());

            employee [i] = new EmployeeRecord (name, num, hr, hw);

       }
   }
}
//“UseEmployeeRecord”类。
导入java.awt.*;
导入hsa.Console;
导入java.io.*;
公共类UseEmployeeRecord{
公共静态void main(字符串[]args)引发IOException{
BufferedReader fr=新的BufferedReader(新文件读取(“employees.txt”);
字符串名;
int-num;
双hr,hw;
EmployeeRecord员工[]=新员工记录[10];
for(int i=0;i
您尚未粘贴employees.txt的内容

例外情况很明显

如果employees.txt中的值是“整数”的字符串表示形式,例如


Integer.parseInt(“1”)
将不会引发异常,但可以肯定的是
Integer.parseInt(null)
Integer.parseInt(“x”)
将引发异常。因此,为了进行调试,请打印
readLine
的值,看看它是否真的代表一个整数。

null
不是一个数字!Ehat是文件的内容为什么OP需要打印“调试”的值?异常消息再清楚不过了:
null
已传递,表示已到达文件结尾。@Tom,因为null不是他将停止的位置。如果下一行不是数字怎么办?他应该知道他在读什么。如果他再次运行程序,使用一组不同的数据,我认为文件的内容可能会改变。使用不同的数据重新运行程序不会改变这样一个事实,即不需要打印
fr.readLine()
的结果进行调试,因为只要文件太短,行为都是一样的。如果文件是正确的(或者足够长),那么OP要么不会得到任何异常,要么会得到一个不同的异常。收到的异常(在问题中)表明文件太短。当您运行整个应用程序时,您的第一条注释(对我的第一条注释的响应)仍然没有意义。