我正在尝试使用Kryo将对象读/写到磁盘:http://code.google.com/p/kryo/
夫妻问题:
如何确定字节缓冲区的大小?如果我把它做得太小就会崩溃,太大会占用大量的内存,文件也很庞大。跟进,kyro不应该知道对象有多大,因为它是序列化的对象吗?
有什么方法可以将它们从ByteBuffer转换为字节数组并返回?
任何人都可以使用Kyro快速有效地读取/写入文件对象?我的令人讨厌的xml快了大约100倍(包括解析,而不仅仅是i / o)根据基准测试没有意义。我尝试使用ByteBuffer写入FileChannel。
答案 0 :(得分:5)
您实际上根本不需要使用ByteBuffer
,您可以使用com.esotericsoftware.kryo.ObjectBuffer
假装您要序列化的课程MyObject
;
MyObject o = new MyObject();
Kryo kryo = new Kryo();
kryo.register(MyObject.class);
ObjectBuffer ob = new ObjectBuffer(kryo);
byte[] myByteArray = ob.writeObject(o);