Java对象序列化和反序列化实战

原创 落日映苍穹つ 2024-11-15 07:48 131阅读 0赞

在Java编程中,对象的序列化和反序列化是常见的一种数据持久化手段。下面我们将通过实战来理解这个过程。

  1. 对象创建

    • 假设我们有一个Person类,包括name、age等属性。

      1. class Person {
      2. String name;
      3. int age;
      4. // 构造函数
      5. public Person(String name, int age) {
      6. this.name = name;
      7. this.age = age;
      8. }
      9. }
  2. 对象序列化

    • 对于要持久化的Person对象,我们可以使用Java的ObjectOutputStream来实现。
      ```java
      try {
      // 创建输出流
      FileOutputStream fos = new FileOutputStream(“person.ser”);

      // 创建ObjectOutputStream,将fos作为参数
      ObjectOutputStream oos = new ObjectOutputStream(fos);

      // 将Person对象写入序列化流
      Person person = new Person(“John Doe”, 30);
      oos.writeObject(person);

      // 关闭ObjectOutputStream和FileOutputStream
      oos.close();
      fos.close();

    } catch (IOException e) {

    1. e.printStackTrace();

    }
    ```

  3. 对象反序列化

    • 当需要从文件中恢复Person对象时,可以使用ObjectInputStream来反序列化。
      ```java
      try {
      // 创建输入流
      FileInputStream fis = new FileInputStream(“person.ser”);

      // 创建ObjectInputStream,将fis作为参数
      ObjectInputStream ois = new ObjectInputStream(fis);

      // 从序列化流中读取Person对象
      Person person = (Person) ois.readObject();

      // 打印恢复的Person对象信息
      System.out.println(person.getName() + “ is “ + person.getAge() + “ years old”));

    } catch (IOException | ClassNotFoundException e) {

    1. e.printStackTrace();

    }
    ```

通过这个实战过程,你可以更好地理解Java对象序列化和反序列化的原理与应用。

文章版权声明:注明蒲公英云原创文章,转载或复制请以超链接形式并注明出处。

发表评论

表情:
评论列表 (有 0 条评论,131人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java对象序列序列

    一、序列化和反序列化的概念   把对象转换为字节序列的过程称为对象的序列化。   把字节序列恢复为对象的过程称为对象的反序列化。   对象的序列化主要有两种用途:

    相关 Java对象序列序列

    一、序列化和反序列化的概念   把对象转换为字节序列的过程称为对象的序列化。   把字节序列恢复为对象的过程称为对象的反序列化。   对象的序列化主要有两种用途: