我有一个我想序列化的对象。问题是,我不想在FileOutputStream或ObjectOutputStream中发送它。相反,我想将结果分配给变量。我无法在网上找到任何关于这样做的信息。这是因为没有标准的Java方法吗?如果是这样的话,我需要研究一下自己编写一个方法吗?
答案 0 :(得分:4)
听起来你需要做这样的事情:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(someObject);
oos.close();
byte[] serialized = bos.toByteArray();
这会将序列化对象的字节表示放入serialized
。您可以使用ByteArrayInputStream和ObjectInputStream来反转进程(反序列化)。
注意:您无法避免使用ObjectOutputStream ...因为 是序列化的所有工作。