Java 对象序列化:使用对象输入输出流存储用户信息

本文将演示如何使用 Java 的对象输入输出流(ObjectInputStream 和 ObjectOutputStream)将用户信息存储到文件中,以及如何从文件中读取用户信息。

使用 Java 语言内容:

import java.io.*;

public class UserInfo {
    private String name;
    private int age;
    private String address;

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

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getAddress() {
        return address;
    }

    public static void main(String[] args) {
        UserInfo user = new UserInfo('John', 25, '123 Main St');

        try {
            // 创建对象输出流
            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream('user.dat'));
            // 写入对象到文件
            oos.writeObject(user);
            // 关闭输出流
            oos.close();

            // 创建对象输入流
            ObjectInputStream ois = new ObjectInputStream(new FileInputStream('user.dat'));
            // 读取文件中的对象
            UserInfo userFromFile = (UserInfo) ois.readObject();
            // 输出读取的对象信息
            System.out.println('Name: ' + userFromFile.getName());
            System.out.println('Age: ' + userFromFile.getAge());
            System.out.println('Address: ' + userFromFile.getAddress());
            // 关闭输入流
            ois.close();
        } catch (IOException | ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
}

该程序首先创建了一个 UserInfo 对象,并将其写入到文件中,然后再从文件中读取对象并输出其信息。使用对象输出输入流可以方便地将对象写入到文件中,并在需要时从文件中读取对象。

代码说明:

  1. 创建 UserInfo 类: 该类用于存储用户信息,包含 name、age 和 address 属性,并提供相应的 getter 方法。
  2. 创建对象输出流: ObjectOutputStream 类用于将对象序列化到文件中。
  3. 写入对象: writeObject() 方法将 UserInfo 对象写入到文件中。
  4. 创建对象输入流: ObjectInputStream 类用于从文件中反序列化读取对象。
  5. 读取对象: readObject() 方法从文件中读取对象。
  6. 输出对象信息: 将读取到的用户信息输出到控制台。

注意: 为了使对象能够被序列化,需要确保类实现了 Serializable 接口。

总结: 通过使用对象输入输出流,我们可以方便地将 Java 对象存储到文件中,并在需要时从文件中读取对象。这在需要持久化数据或跨进程传递数据时非常有用。

Java 对象序列化:使用对象输入输出流存储用户信息

原文地址: https://www.cveoy.top/t/topic/ol3E 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录