2011-10-25 84 views
1

我試圖用KRYO讀/寫對象盤:http://code.google.com/p/kryo/讀取/寫入序列化對象(kyro)到文件/磁盤?

夫婦的問題:

  • 我如何確定我的字節緩衝區的大小?如果我把它做得太小,它會崩潰,太大會消耗大量內存,並且文件很大。後續,不應該kyro已經知道對象是多大,因爲它是一個序列化的對象?

  • 什麼是將它們從ByteBuffer轉換爲字節數組並返回的好方法?

  • 任何人都有一個有效和快捷的方式來讀/寫對象文件使用Kyro?根據基準測試,我的糟糕xml速度大約快100倍(包括解析,而不僅僅是i/o)。我嘗試使用ByteBuffer寫入FileChannel。

回答

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); 
+0

你的意思是,獲得字節數組後,我可以將其轉儲到文件? – Bostone

+0

如果是這樣,反序列化回到對象最簡單的方法是什麼? – Bostone