首页 > Java > java教程 > 如何序列化和反序列化 Java 对象以进行套接字通信?

如何序列化和反序列化 Java 对象以进行套接字通信?

DDD
发布: 2024-12-15 11:28:14
原创
425 人浏览过

How Can I Serialize and Deserialize Java Objects for Socket Communication?

将 Java 对象序列化为字节数组以进行套接字传输

问题:

考虑一个名为 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板