我正在做一本日程安排书,我正在保存一个 .txt 我所有的对象,它工作正常,当我阅读它们时出现问题,我的程序读取,当文件结束时,我的程序不知道怎么办,我不会放我的代码,因为它现在一团糟,但这是我老师的代码,这是我用作模板的代码:
try{
//***Instructions for reading***
//It creates a streamobject with the file's name and asigned format
FileInputStream fileIn = new FileInputStream("Serializado.txt");
//It creates an inputobject, so it can represent the object
ObjectInputStream objIn= new ObjectInputStream(fileIn);
while (fileIn != null) {
//with readObject() method, it extracts the object's content
obInp= (NewAlumno) objIn.readObject(); //Se hace un "cast" a NewAlumno
System.out.print("Nombre :" + obInp);
System.out.print(", Sexo: " + obInp.getSexo());
System.out.print(", Direccion: "+ obInp.getDireccion());
System.out.print(", Promedio: " + obInp.getpromedioPoo());
System.out.print(", Telefono: " + obInp.getTelefono()+"\n");
}
objIn.close();
} catch(Exception e){}
}
正如你所看到的,catch 异常是空的,所以,当我使用我老师的代码时,它看起来工作得很好,但是,我在那里放了一个 println,它总是打印出来。意思是出了点问题,我很确定那是
while(fileIn != null)
因为 Netbeans 说这个表达式永远不会为空。所以我猜这个程序在他到达文件末尾后不知道该怎么做......有什么建议吗?提前致谢!
这是一个例外:
java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2577)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1315)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at profegraba.Persistencia.main(Persistencia.java:81)