2012-02-09 64 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似乎是一个这样的图书馆。

您提供的代码示例绝对是将对象序列化为二进制文件的最简单方法。