Java可序列化对象到字节数组

问题:

假设我有一个可序列化的类AppMessage
我想通过套接字将其作为byte[]传输到从接收的字节重建的另一台机器上。
我该怎么做到这一点?

回答:

准备要发送的字节:
class=”lang-java prettyprint-override”>

ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutput out = null;
try {
  out = new ObjectOutputStream(bos);   
  out.writeObject(yourObject);
  out.flush();
  byte[] yourBytes = bos.toByteArray();
  ...
} finally {
  try {
    bos.close();
  } catch (IOException ex) {
    // ignore close exception
  }
}

从字节创建对象:
class=”lang-java prettyprint-override”>

ByteArrayInputStream bis = new ByteArrayInputStream(yourBytes);
ObjectInput in = null;
try {
  in = new ObjectInputStream(bis);
  Object o = in.readObject(); 
  ...
} finally {
  try {
    if (in != null) {
      in.close();
    }
  } catch (IOException ex) {
    // ignore close exception
  }
}

 
 
Code问答: http://codewenda.com/topics/python/
Stackoverflow: Java Serializable Object to Byte Array

*转载请注明本文链接以及stackoverflow的英文链接

发表评论

电子邮件地址不会被公开。 必填项已用*标注

15 − 11 =