繁体   English   中英

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

[英]Reading serialized objects from a binary file in 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所提到的,将序列化对象连接到单个文件中是不好的做法,它们应该包含在一个集合中。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM