【问题标题】:How to converting any object into Bytes?如何将任何对象转换为字节?
【发布时间】:2012-02-09 16:21:34
【问题描述】:
我能想到的一种方法如下
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
我的问题是,还有其他更好的选择吗(其他方式,第三方库等)?
【问题讨论】:
标签:
java
object
bytearray
【解决方案1】:
如果您想转换 任何 对象,即您无法控制的类的实例,那么您将不得不使用 Java 序列化 API 来序列化它们。
有许多可用的序列化 API 实现提供不同的输出。例如。您可以将您的实例序列化为 XML 或 YAML,而不是默认的 Java 二进制格式。
您写道,您希望专门将对象序列化为 字节,因此您应该寻找序列化 API 的实现来提供某种二进制输出。 Kryo 似乎就是这样一个库。
您提供的代码示例绝对是将对象序列化为二进制的最简单方法。