是否可以将 ObjectOutputStream/ObjectInputStream 设置为内部类?我可以写好,并检查创建的文件,但是当我尝试使用 ObjectInputStream 读回它时,我得到一个 EOFException 只是试图读取一个 Object o = oos.readObject();
- 我使用相同的 File 对象来打开两个流,所以这不是问题。
- 它似乎与内部类的性质无关——只有一个公共 int 的类与更复杂的类一样失败。
我必须继续前进,创建一个常规类,并在发送者类中实例化,但我讨厌走开,不知道是否可能,如果不知道为什么不这样做。
更新:导致问题的相关问题:
A. 您无法重新打开使用 ObjectOutputStream 写入的文件并追加:写入第二个标头并损坏文件。
B. 使用 ByteOutputStream 序列化 HashMap 以进行哈希摘要不起作用,因为当您从 ObjectOutputStream 文件中读回 HashMap 时,由于对顺序的变化,您很可能会从 ByteOutputStream 获得不同的 byte[]:内容是相同的,但 byte[] (以及散列摘要)不是。
希望这可以帮助某人节省一些时间。