Почему я не могу создать объект 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», не пуст? –
Вы правильно сериализовались? разместите свой код для класса 'repo' и сериализации –
На основе трассировки стека, показывающей, что EOFException исходит от конструктора ObjectInputStream, мне пришлось бы предположить, что файл 'student.txt' является сериализованным Java-объектом, который был сериализован неправильно. У вас есть код для сериализации? – claymore1977