我正在阅读不同的方法/工具来序列化对象,并且正在为我的应用程序寻找最新的建议(因为我可以在 2012 年、2010 年找到很多类似的问题+答案,... )。
我需要将一些java对象写入磁盘。我希望节省磁盘空间,因为这些对象可能包含大量数据,而且我希望速度更快。
到目前为止,它已经用java标准序列化完成了,但实现可能不是很好(没有明确的serialID设置,...)。 我读过有关 kryo 库的信息,但我有点害怕使用第 3 方库,因为我不知道它们的维护情况如何/它们的使用有多普遍。 或者我应该改进可序列化接口(interface)的使用,如果是,是否有关于正确实现的任何好的文档?
最佳答案
该解决方案有助于节省磁盘空间,并且基于 Java 标准库
ObjectOutputStream oos = new ObjectOutputStream(new GZIPOutputStream(new FileOutputStream("file")));
oos.writeObject(obj);
...
ObjectInputStream ois = new ObjectInputStream(new GZIPInputStream(new FileInputStream("file")));
obj = ois.readObject();
...
关于java序列化实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25442461/