我的桌面应用程序中有一个大型 Java 对象树,并且正在尝试确定将它们作为文件保存到文件系统的最佳方法。
我的一些想法是:
使用 DataOutputStream 滚动我自己的序列化程序:这将使我能够最大程度地控制文件中的内容,但代价是对其进行微观管理。
使用 ObjectOutputStream 及其各种相关类的直接旧序列化:虽然我发现数据很脆弱,但我并没有出售它。更改任何对象的结构都会破坏它的序列化实例。因此,我陷入了似乎是可怕的版本控制噩梦中。
XML 序列化:它没有那么脆弱,但是直接序列化的速度要慢得多。它可以在我的程序之外进行转换。
JavaDB:我考虑过这个,因为我很擅长编写 JDBC 应用程序。这里的区别是数据库实例只会在文件被打开或保存时持续存在。它并不漂亮,但是……如果以后需要,它确实适合迁移到中央服务器架构,并且它引入了以更简单的方式查询数据模型的可能性。
我很好奇看看其他人是怎么想的。我希望我错过了一些比上述方法更明显、更简单的方法。
以下是从以下答案中挑选出的更多选项:
- 对象数据库- 比 ORM 方法具有明显更少的基础架构,并且比 XML 方法执行得更快。谢谢阿库