如何将任何对象转换为字节?

时间:2012-02-09 16:21:34

标签: java object bytearray

我能想到的一种方式如下

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

我的问题是,还有其他更好的选择(其他方式,第三方库等)吗?

1 个答案:

答案 0 :(得分:0)

如果要转换任何对象,即您无法控制的类的实例,则必须使用Java序列化API来序列化它们。

有许多序列化API的实现可以提供不同的输出。例如。您可以将实例序列化为XML或YAML,而不是默认的Java二进制格式。

您写道,您希望将对象特别序列化为 bytes ,因此您应该寻找序列化API的实现来提供某种二进制输出。 Kryo似乎就是这样一个图书馆。

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