【问题标题】:Deserializing an Object that has been serialized using ObjectOutputStream's writeObject method使用 ObjectOutputStream 的 writeObject 方法反序列化已序列化的 Object
【发布时间】:2015-01-09 21:35:48
【问题描述】:

如果你使用 ObjectOutputStream 的 writeObject 方法序列化一个 Object,是否只有通过 ObjectInputStream 的 readObject 方法反序列化它?可以调用 ObjectInputStream 的其他读取方法吗?

【问题讨论】:

  • 如果流中的内容是一个对象,那么readObject 是读取它的正确方法。如果它是原语,那么您将需要其他读取方法之一。你问的是这个吗?

标签: java serialization deserialization objectinputstream objectoutputstream


【解决方案1】:

对象流中的项目被标记。如果您尝试使用错误的readXXX() 原语来读取它们,您将得到一个EOFException。可以用来读取写入对象的唯一方法是 readObject()readUnshared(). 当然,您始终可以使用 read() 方法读取原始字节,但您可能无法使用任何 @987654326 @ 方法之后,通过移动到流中的任意位置。

【讨论】:

    猜你喜欢
    • 2015-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 2013-09-23
    相关资源
    最近更新 更多