问题:
考虑一个名为 AppMessage 的可序列化类的场景需要通过套接字传输到另一台机器并根据接收到的字节进行重建。目标是探索在 Java 中实现此目标的技术。
解决方案:
要准备用于传输的字节数组,请使用序列化方法:
static byte[] serialize(final Object obj) { ByteArrayOutputStream bos = new ByteArrayOutputStream(); try (ObjectOutputStream out = new ObjectOutputStream(bos)) { out.writeObject(obj); out.flush(); return bos.toByteArray(); } catch (Exception ex) { throw new RuntimeException(ex); } }
相反,要从字节数组重新创建对象,请使用反序列化方法:
static Object deserialize(byte[] bytes) { ByteArrayInputStream bis = new ByteArrayInputStream(bytes); try (ObjectInput in = new ObjectInputStream(bis)) { return in.readObject(); } catch (Exception ex) { throw new RuntimeException(ex); } }
这些方法可以实现 Java 对象的高效序列化和反序列化,方便它们通过套接字传输以便在接收机器上重建。
以上是如何序列化和反序列化 Java 对象以进行套接字通信?的详细内容。更多信息请关注PHP中文网其他相关文章!