从java中的二进制文件中读取序列化对象?

时间:2015-11-25 18:27:24

标签: java file-io binaryfiles

我有一个简单的问题。

如何在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();

1 个答案:

答案 0 :(得分:2)

正如malinator所提到的,将序列化对象连接在一个文件中是不好的做法,它们应该包含在Collection中。

如果您无权访问生成该文件的代码,则可能有两种情况:

  • 要么您知道对象的数量,那么您可以执行正确数量的ObjectInputStream.readObject()调用,最好使用for循环
  • 或者你没有,那么问题是检测到文件的结尾。您可以使用while循环和try/catch(EOFException)
相关问题