2012-07-26 126 views

回答

3

消息以字節流形式發送,因此您可以將可串行化的任何對象轉換爲字節流併發送,然後在另一端反序列化它。

把這個消息對象,並把它當消息被髮布:

public byte[] toBytes() { 
     byte[]bytes; 
     ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
     try{ 
     ObjectOutputStream oos = new ObjectOutputStream(baos); 
     oos.writeObject(this); 
     oos.flush(); 
     oos.reset(); 
     bytes = baos.toByteArray(); 
     oos.close(); 
     baos.close(); 
     } catch(IOException e){ 
     bytes = new byte[] {}; 
     Logger.getLogger("bsdlog").error("Unable to write to output stream",e); 
     }   
     return bytes; 
    } 

把這個消息對象,並調用它,當消息被消耗:

public static Message fromBytes(byte[] body) { 
    Message obj = null; 
    try { 
     ByteArrayInputStream bis = new ByteArrayInputStream (body); 
     ObjectInputStream ois = new ObjectInputStream (bis); 
     obj = (Message)ois.readObject(); 
     ois.close(); 
     bis.close(); 
    } 
    catch (IOException e) { 
     e.printStackTrace(); 
    } 
    catch (ClassNotFoundException ex) { 
     ex.printStackTrace(); 
    } 
    return obj;  
} 
+0

你可以實際上使用JSON.NET來輕鬆地將內容序列化或反序列化爲JSON。 – ashes999 2016-09-23 14:57:36

相關問題