从java中的二进制文件中读取序列化对象?
我有一个简单的问题。
如何在java中读取二进制文件的所有内容?
我写了一些代码,但它只检索第一个对象。
这是我的代码:
ObjectInputStream in = new ObjectInputStream(new FileInputStream("C:\\Users\\فاطمة\\Downloads\\student.bin")); Binary b2 = (Binary)in.readObject(); System.out.println("Student ID: " + b2.id); System.out.println("Student Name: " + b2.name); System.out.println("Student Grade: " + b2.grade); in.close();
作为malinator提到,将序列化对象连接在一个文件中是不好的做法,它们应该包含在Collection中。
如果您无权访问生成该文件的代码,则可能存在以下两种情况:
- 要么您知道对象的数量,那么您可以执行正确数量的
ObjectInputStream.readObject()
调用,最好使用for
循环 - 或者你没有,那么问题是检测到文件的结尾。 你可以使用
while
循环和try/catch(EOFException)
。