并非所有项目都需要数据库。 我目前正在开发的项目根本不需要任何数据库。相反,它应该使用对象序列化来存档。 这个实现会将许多对象序列化/反序列化为文件。 我的问题是,对象序列化的最佳实践是什么?
答案 0 :(得分:4)
这在很大程度上取决于数据的性质,您将要写入磁盘的类有多大可能会发生变化,您是否只需要存储类的数据或其数据和代码,以及它是否应该是人类可读的
Object serialization to a file是一种技巧。将对象模型转换为结构化文本记录(CSV,XML等)是另一种方法。通常,如果文件中引用的对象必须相互引用,则需要将引用编码为与文件相关的id号,并让解码器在加载对象时重建引用。
如果您确实需要控制对象编组与存储之间的编组方式,您可以通过Externalizable接口详细控制它。请注意,一旦承担了所有责任,您将需要正确处理它。
就最佳做法而言:
答案 1 :(得分:3)
我会建议使用协议缓冲区,但现在我建议使用MessagePack
答案 2 :(得分:1)
我建议你看一下XStream。
这是一个简单的库,可以将对象序列化为XML并返回。