我能想到的一种方式如下
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(object);
byte[] bytes = baos.toByteArray();
我的问题是,还有其他更好的选择(其他方式,第三方库等)吗?
答案 0 :(得分:0)
如果要转换任何对象,即您无法控制的类的实例,则必须使用Java序列化API来序列化它们。
有许多序列化API的实现可以提供不同的输出。例如。您可以将实例序列化为XML或YAML,而不是默认的Java二进制格式。
您写道,您希望将对象特别序列化为 bytes ,因此您应该寻找序列化API的实现来提供某种二进制输出。 Kryo似乎就是这样一个图书馆。
您提供的代码示例绝对是将对象序列化为二进制文件的最简单方法。