我有一个对象集合,我需要以字节格式存储,然后我必须将以字节为单位的数据转换回对象集合。我需要java中的答案。 例如,我有一个对象数组(任何类型),然后我必须将此数组转换为java中的字节数组,然后反之亦然。
请尽可能建议我使用的集合和支持它的方法。
答案 0 :(得分:4)
假设Foo implements Serializable
,只需执行
List<Foo> list = createItSomehow();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
try {
oos.writeObject(list);
} finally {
oos.close();
}
byte[] bytes = baos.toByteArray();
// ...
反之亦然:
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
List<Foo> list = null;
try {
list = (List<Foo>) ois.readObject();
} finally {
ois.close();
}
// ...
除了ByteArrayOutputStream
和ByteArrayInputStream
,您当然还可以分别提供FileOutputStream
和FileInputStream
来写入/读取文件。