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

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

DDD
Release: 2024-12-15 11:28:14
Original
423 people have browsed it

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

Serializing Java Objects to Byte Arrays for Socket Transmission

Problem:

Consider a scenario where a serializable class called AppMessage needs to be transmitted over sockets to another machine and rebuilt from the received bytes. The objective is to explore techniques for achieving this objective in Java.

Solution:

To prepare the byte array for transmission, utilize the serialize method:

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);
    }
}
Copy after login

Conversely, to recreate an object from a byte array, employ the deserialize method:

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);
    }
}
Copy after login

These methods enable efficient serialization and deserialization of Java objects, facilitating their transmission over sockets for reconstruction on the receiving machine.

The above is the detailed content of How Can I Serialize and Deserialize Java Objects for Socket Communication?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template