首先,定义一个用户类UserInfo,包含用户名和密码两个属性:

public class UserInfo implements Serializable {
    private String username;
    private String password;

    public UserInfo(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }
}

然后,定义一个工具类FileUtil,包含添加用户信息,读取用户信息两个方法:

import java.io.*;
import java.util.HashSet;
import java.util.Set;

public class FileUtil {
    private static final String FILE_PATH = "user_info.dat";

    public static void addUserInfo(UserInfo userInfo) {
        Set<UserInfo> userInfos = readUserInfos();
        userInfos.add(userInfo);

        try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(FILE_PATH))) {
            oos.writeObject(userInfos);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static Set<UserInfo> readUserInfos() {
        Set<UserInfo> userInfos = new HashSet<>();

        File file = new File(FILE_PATH);
        if (file.exists() && file.isFile()) {
            try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(FILE_PATH))) {
                Object obj = ois.readObject();
                if (obj instanceof Set) {
                    Set set = (Set) obj;
                    for (Object o : set) {
                        if (o instanceof UserInfo) {
                            userInfos.add((UserInfo) o);
                        }
                    }
                }
            } catch (IOException | ClassNotFoundException e) {
                e.printStackTrace();
            }
        }

        return userInfos;
    }
}

在测试类中,可以添加多个用户信息:

public class Test {
    public static void main(String[] args) {
        UserInfo userInfo1 = new UserInfo("user1", "123456");
        UserInfo userInfo2 = new UserInfo("user2", "654321");
        UserInfo userInfo3 = new UserInfo("user3", "abc123");

        FileUtil.addUserInfo(userInfo1);
        FileUtil.addUserInfo(userInfo2);
        FileUtil.addUserInfo(userInfo3);

        Set<UserInfo> userInfos = FileUtil.readUserInfos();
        for (UserInfo userInfo : userInfos) {
            System.out.println(userInfo.getUsername() + ":" + userInfo.getPassword());
        }
    }
}

输出结果为:

user3:abc123
user2:654321
user1:123456
``
添加多个用户信息到文件采用集合并使用对象输出输入流使用java语言

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

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