2015-04-08 57 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,更新! –

相關問題