使用Kryo将多个对象序列化为单个文件

Har*_*eri 5 java serialization kryo

据我所知,每个对象都会发生Kryo序列化/反序列化.是否可以将多个对象序列化为单个文件?在另一个类似的SO问题中提出的解决方法之一是使用一组对象.考虑到需要序列化的大量数据,我觉得它不会像应有的那样高效.这是正确的假设吗?

Kon*_*hik 2

Kryo API 是否采用 OutputStream?如果是这样,只需向其提供相同的 OutputStream 即可序列化多个文件。读取时对InputStream进行同样的操作。良好的序列化格式将具有长度编码或终止符号,并且不会依赖 EOF 进行任何操作。

只要所有这些对象都已在内存中,数组方法也可以以最小的开销工作。您正在谈论的是为每个对象添加几个字节来创建一个数组来保存它们。如果它们不全部在内存中,则必须首先将它们全部加载到内存中,以便在它们周围创建一个数组。如果数据集足够大,这肯定会成为一个问题。

  • 这个答案是正确的,Kryo v2 支持流式传输。将对象按顺序写入文件。从文件中一一读取。 (3认同)