2015-04-08 62 views
-2

我有一个List<Animal>,我想作为SOAP响应发送到客户端,但发送方法需要byte[]并在客户端反序列化。如何序列化和反序列化Java中的对象列表?

谁能告诉我如何将我的List<Animal>转换为byte[]并将byte[]转换回List<Animal>

我知道这个网站有很多这样的问题,但我对这个答案感到困惑。我尝试了很多,但都没有为我工作。

+0

我试过了。它只适用于单个对象或对象,但不适用于列表 user1036645

+0

这样的嵌套对象。我再次尝试了您建议的代码。它抛出java.lang.ClassCastException:[B不能转换为java.util.List – user1036645

回答

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

你必须解释一下你的代码,以便更好地理解。 – Kumar

+0

'baos.close()'在这里是多余的。 – EJP

+0

谢谢!@EJP,更新! –

相关问题