Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

java 反序列化

作者:潇洒一醉   发布日期:2026-05-26   浏览:98

import java.io.*;

class Person implements Serializable {
    private static final long serialVersionUID = 1L;
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{name='" + name + "', age=" + age + "}";
    }
}

public class SerializationExample {

    // 序列化对象到文件
    public static void serializeObject(Person person, String filePath) {
        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(filePath))) {
            oos.writeObject(person);
            System.out.println("对象已序列化并保存到文件: " + filePath);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 从文件中反序列化对象
    public static Person deserializeObject(String filePath) {
        Person person = null;
        try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(filePath))) {
            person = (Person) ois.readObject();
            System.out.println("对象已从文件反序列化: " + filePath);
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
        return person;
    }

    public static void main(String[] args) {
        String filePath = "person.ser";
        Person person = new Person("Alice", 30);

        // 序列化对象
        serializeObject(person, filePath);

        // 反序列化对象
        Person deserializedPerson = deserializeObject(filePath);
        if (deserializedPerson != null) {
            System.out.println("反序列化后的对象: " + deserializedPerson);
        }
    }
}

解释说明

  1. 类定义:

    • Person 类实现了 Serializable 接口,表示它可以被序列化。
    • serialVersionUID 是一个序列化版本号,用于确保不同版本的类可以兼容地进行序列化和反序列化。
  2. 序列化方法:

    • serializeObject 方法将 Person 对象写入到指定的文件路径中。使用 ObjectOutputStream 来完成对象的序列化操作。
  3. 反序列化方法:

    • deserializeObject 方法从指定的文件路径中读取并反序列化 Person 对象。使用 ObjectInputStream 来完成对象的反序列化操作。
  4. 主程序:

    • 创建一个 Person 对象,并调用 serializeObject 方法将其序列化到文件中。
    • 然后调用 deserializeObject 方法从文件中读取并反序列化对象,最后打印出反序列化后的对象信息。

这个示例展示了如何在 Java 中进行对象的序列化和反序列化操作。

上一篇:java toarray

下一篇:grpc java

大家都在看

java url decode

java判断是windows还是linux

java连接数据库的代码

java date类型比较大小

java djl

ubuntu 卸载java

es java api

java list 查找

java 解压rar

jsonobject.tojavaobje

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站