13

我正在ObjectOutputStream(FileOutputStream(File))使用类似的InputStreams. 有没有办法查看这些序列化文件的内部(最好在 eclipse 中),所以我可以检查是否编写了所有必要的属性?

编辑:谷歌搜索是否定的

4

4 回答 4

5

编写一些测试(使用 Eclipse 的内置 JUnit 支持)。

“查看内部”这些文件的唯一方法是使用ObjectInputStream(FileInputStream(File)),除非您是字节码专家并使用十六进制编辑器。如果您确实进行了一些测试,则无需“查看内部”任何内容。

于 2011-02-03T17:59:12.710 回答
4

虽然这不是一个成熟的编辑器,但 Eamonn McManus 编写了一个代码转换器,它将序列化的 blob 解密为人类可读的形式。 http://weblogs.java.net/blog/2007/06/12/disassemble-serialized-java-objects

如果考虑二进制兼容性和性能,这将是研究 Externalizable 而不是 Serializable 的好时机。

于 2011-02-04T07:57:48.503 回答
2

这不是一个“独立”的答案,只是 OrangeDog 答案的扩展。

“编写一些测试(使用 Eclipse 的内置 JUnit 支持)。”

如果要测试序列化,请编写执行以下操作的测试:

  1. 将一个对象序列化为文件。
  2. 从同一文件反序列化为不同的对象。
  3. 比较这两个对象,看看反序列化的对象包含所有应该被序列化的值(确保“所有必要的属性都已写入”)。
于 2011-02-03T18:08:53.777 回答
1

编写一个加载文件并反序列化对象的类。然后使用 Eclipse 的 Debugging View 浏览对象(通过设置断点)。

于 2011-02-03T18:01:33.427 回答