集合对象序列化(IO流)

package com.itheima.d5_serializable;

import java.io.Serializable;

### // 类的对象如果要序列化,必须实现Serializable接口。
public class User implements Serializable {
    private int id;
    private String loginName;
    private String passWord;
    private String hobby;

    public User(){
    }

    public User(int id, String loginName, String passWord, String hobby) {
        this.id = id;
        this.loginName = loginName;
        this.passWord = passWord;
        this.hobby = hobby;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getLoginName() {
        return loginName;
    }

    public void setLoginName(String loginName) {
        this.loginName = loginName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }

    public String getHobby() {
        return hobby;
    }

    public void setHobby(String hobby) {
        this.hobby = hobby;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", loginName='" + loginName + '\'' +
                ", passWord='" + passWord + '\'' +
                ", hobby='" + hobby + '\'' +
                '}';
    }
}

package com.itheima.d5_serializable;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Test {
    public static void main(String[] args) throws Exception {
        // 目标:序列化多个对象,反序列化多个对象。
        List users = new ArrayList<>();
        users.add(new User(1, "唐僧0", "baigujing", "赶走孙悟空"));
        users.add(new User(2, "唐僧1", "baigujing1", "赶走孙悟空1"));
        users.add(new User(3, "唐僧2", "baigujing2", "赶走孙悟空2"));
        users.add(new User(4, "唐僧3", "baigujing3", "赶走孙悟空3"));
        // 直接序列化集合对象。
        ObjectOutputStream oos =
                new ObjectOutputStream(new FileOutputStream("day11-special-file-log/src/data.txt"));
        oos.writeObject(users);
        oos.close();

        // 反序列化
        getUsers();
    }

    public static void getUsers() throws Exception {
        ObjectInputStream ois =
                new ObjectInputStream(new FileInputStream("day11-special-file-log/src/data.txt"));
        List users = (List) ois.readObject();
        for (User u : users) {
            System.out.println(u);
        }
        ois.close();
    }
}
posted @ 2022-12-08 20:35  四四一百六  阅读(28)  评论(0)    收藏  举报