如何在Java中序列化和取消序列化对象列表



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

有人能告诉我如何将我的List<Animal>转换为byte[],并将byte[]转换回List<Animal>吗。

我知道这个网站上有很多这样的问题,但我对答案感到困惑。我试了很多,但都不适用。

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

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;
}

相关内容

  • 没有找到相关文章

最新更新