java序列化

public class SerializationUtil {

    public static byte[] serialize(Person person) {
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        try (ObjectOutputStream oos = new ObjectOutputStream(baos)) {
            oos.writeObject(person);
            return baos.toByteArray();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static Person deserialize(byte[] bytes) {
        try (ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
             ObjectInputStream ois = new ObjectInputStream(bais)) {
            return (Person) ois.readObject();
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
public static void main(String[] args) {
        Person person = new Person("Alice", 30);

        // 序列化
        byte[] serializedPerson = SerializationUtil.serialize(person);
        System.out.println("Serialized person: " + serializedPerson);

        // 反序列化
        Person deserializedPerson = SerializationUtil.deserialize(serializedPerson);
        System.out.println("Deserialized person: " + deserializedPerson);
    }
}

确保所有的可序列化类都实现了 Serializable 接口。
处理异常时要小心,特别是 ClassNotFoundException,它可能会在反序列化时抛出。
使用 try-with-resources 语句来确保流被正确关闭。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值