java序列化实践

标签 java serialization kryo

我正在阅读不同的方法/工具来序列化对象,并且正在为我的应用程序寻找最新的建议(因为我可以在 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/

相关文章:

java - EhCache 的 CacheStatistics getCacheHits 与 getInMemoryHits

java - 如何使用jsp中的键从java map 获取值,但键是一个javascript值

java - 在 Hortonworks 上使用 Jdbc 远程连接到 Hive 时出现 ClassNotFoundException

java - 使用 Kryo 序列化同步映射

java - 如何对没有实现 Iterable 的类使用 for-each 循环

wcf - 为什么我不能在我的 WCF 类中使用 KnownType 属性?

java - SpringFramework ResponseBody 返回具有空值的对象

java - 如何将对象二进制(反)序列化为/形成字符串?

Java 序列化、Kryo 和对象图