【发布时间】:2016-10-31 18:19:25
【问题描述】:
*.gz 文件是在我正在使用的包的先前版本下创建的(它具有类 tratz.semantics.ClassificationBundle)。在当前版本中,该类被命名为 miacp.semantics.ClassificationBundle。两者的成员相同。有什么方法可以让早期版本在后期版本中可读吗?基本的读取功能是
ClassificationBundle bundle = (ClassificationBundle) ois.readObject();
我有较早的版本,所以我可以读取那个版本的文件。但是,我将如何创建一个可以在新版本中读取的新文件?
【问题讨论】:
-
你被咬过一次:我会停止使用 Java 序列化进行长期存储。使用更易读、可定制、可移植的机制,例如 JSON 或 XML,任何程序、任何库版本、使用任何语言都可以读取。并且任何文本编辑器都可以进行编辑。
-
这些文件相当大(50MB 到 90MB);我正在加载其中的五个。数据结构相当复杂。
-
如果
miacp包与tratz包不冲突,您应该能够将两个包放在同一个类路径中。编写一个实用程序,将tratz.semantics.ClassificationBundle对象的内容复制到新的miacp.semantics.ClassificationBundle对象中。
标签: java serialization gzipinputstream