2012-02-09 65 views
1

一個我能想到的方法是如下如何將任何對象轉換爲字節?

ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
ObjectOutputStream oos = new ObjectOutputStream(baos); 
oos.writeObject(object); 
byte[] bytes = baos.toByteArray(); 

我的問題是,是否有其他更好的替代品(一些其他的方式,第三方庫等)?

回答

0

如果要將任何對象(即不受控制的類的實例)轉換,則必須使用Java序列化API對它們進行序列化。

有很多可用的序列化API實現提供不同的輸出。例如。您可以將您的實例序列化爲XML或YAML,而不是默認的Java二進制格式。

您寫道,您希望將對象序列化爲字節,因此您應該查找序列化API的實現以提供某種二進制輸出。 Kryo似乎是一個這樣的圖書館。

您提供的代碼示例絕對是將對象序列化爲二進制文件的最簡單方法。