为什么我无法创建ObjectInputStream
对象?每次我尝试创建一个我得到EOFException
,我不明白为什么。有人能帮我吗? 下面是我遇到问题的代码以及从执行中获得的堆栈跟踪。该文件是空的。无法创建ObjectInputStream
public void loadFromFileStudent() throws IOException, ClassNotFoundException {
try{
InputStream inputStream = new FileInputStream("student.txt");
System.out.println(inputStream.toString());
ObjectInputStream objectInputStream;
objectInputStream = new ObjectInputStream(inputStream);
System.out.println(objectInputStream.toString());
this.repo=(Dictionary<Integer, Student>) objectInputStream.readObject();
objectInputStream.close();
inputStream.close();
}catch (EOFException e){
e.printStackTrace();;
//System.out.println(e.getMessage());
}
}
。
[email protected]
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2324)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2793)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:799)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
at repository.Repository.loadFromFileStudent(Repository.java:94)
at repository.Repository.<init>(Repository.java:112)
at utils.DataStructure.createRepository(DataStructure.java:16)
at controller.Controller.<init>(Controller.java:9)
at utils.DataStructure.createController(DataStructure.java:20)
at application.RunMenu.<init>(RunMenu.java:15)
at application.App.main(App.java:5)
我会检查“student.txt”的内容,是否为空? – 2013-12-09 18:06:22
您是否已正确序列化?发布代码以用于'repo'类和序列化 –
根据显示EOFException来自ObjectInputStream构造函数的堆栈跟踪,我必须假定文件'student.txt'是序列化的序列化Java对象错误。 你有序列化部分的代码吗? – claymore1977