2011-03-01 69 views
3

嗨,我正在尋找任何開源可用來實現最佳的類序列化。如何在java中實現序列化

我在說,是否有任何更好地處理序列化的開源(這是流行的)。

+6

是「**最好的**串行化」還是「最好的**類串行化**」? – skaffman 2011-03-01 19:35:25

+2

請問一個更具體的問題。鑑於您給我們的上下文,我們無法擊敗Google。 – 2011-03-01 19:35:50

+0

你想要實現你自己的序列化器,還是你在問現有的序列化器? – Oded 2011-03-01 19:36:00

回答

4

序列化內置於java。對於大多數課程,您可以簡單地實施java.io.Serializable,並且您的課程「神奇地」變爲可串行化。然後,您可以使用java.io.ObjectOutputStream & java.io.ObjectInputStream來讀取和寫入您的對象。

如果您需要自定義序列化,請將以下方法添加到您的類中以覆蓋序列化行爲。他們必須符合這些特徵恰好

private void writeObject(ObjectOutputStream out) throws IOException { 
    //YOUR WRITE CODE HERE 
} 

private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { 
    // YOUR READ CODE HERE 
} 
4

要麼看看Java源代碼(是的,它自帶的JDK,但在一個叫做src.zip文件zippen),或看JBossSerialization,這是更快,並減少序列化對象的大小。我前段時間編寫了自己的程序,速度提高了6倍,生成的數據少了6倍,但它需要雙方都知道確切的類結構,因此它只能用作通信協議,而不能用於持久性存儲。

+0

謝謝,我幾乎在尋找這樣的答案 – user639990 2011-03-01 19:46:23

+0

快速序列化(github)具有相同級別的兼容性,同時比JBoss序列化快得多 – 2014-06-14 12:45:23

2

你在尋找什麼類似protobuf?正如其他評論者所說的那樣,我原本寫下你的問題時很難。