如何在Java中序列化和反序列化对象列表?

时间:2015-04-08 02:58:20

标签: java serialization stream

我想要将List<Animal>作为SOAP响应发送给客户端,但send方法需要byte[]并在客户端中反序列化。

有人可以告诉我如何将List<Animal>转换为byte[]并将byte[]转换回List<Animal>

我知道在这个网站上有很多这样的问题,但我对答案感到困惑。我试了很多,但没有一个对我有效。

2 个答案:

答案 0 :(得分:2)

这取决于动物。如果是Serializable,则可以使用Java Serialization mechanizm https://docs.oracle.com/javase/tutorial/jndi/objects/serial.html

答案 1 :(得分:0)

public static byte[] objectToByteArray(Object obj) throws Exception {
    byte[] bytes = null;
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    ObjectOutputStream oos = new ObjectOutputStream(baos);
    oos.writeObject(obj);
    bytes = baos.toByteArray();
    oos.close();
    return bytes;
}

public static Object byteArrayToObject(byte[] buffer) throws Exception {
    Object ob = null;
    ObjectInputStream ois = new ObjectInputStream(new ByteArrayInputStream(
            buffer));
    ob = ois.readObject();
    ois.close();
    return ob;
}