在java中将对象集合转换为字节格式,反之亦然

raj*_*har 0 java arrays collections

我有一个对象集合,我需要以字节格式存储,然后我必须将字节数据转换回对象集合。我需要java中的答案。例如,我有一个对象数组(任何类型),然后我必须将该数组转换为 java 中的字节数组,然后反之亦然。

如果可能,请建议我使用的集合以及支持它的方法。

Bal*_*usC 5

假设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();
// ...
Run Code Online (Sandbox Code Playgroud)

反之亦然:

ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
ObjectInputStream ois = new ObjectInputStream(bais);
List<Foo> list = null;

try {
    list = (List<Foo>) ois.readObject();
} finally {
    ois.close();
}

// ...
Run Code Online (Sandbox Code Playgroud)

当然,您也可以提供ByteArrayOutputStream和来分别将其写入文件或从文件中读取它。ByteArrayInputStreamFileOutputStreamFileInputStream

也可以看看: