永久保存注册的账号,即使重新运行也能登入

package lianxi802;

import java.io.Serializable;

public class User implements Serializable {
    private String name;
    private int age;
    private String sex;
    private String code;

    @Override
    public String toString() {
        return "User [name=" + name + ", age=" + age + ", sex=" + sex + ", code=" + code + "]";
    }

    public User() {
        super();
    }

    public User(String name, int age, String sex, String code) {
        super();
        this.name = name;
        this.age = age;
        this.sex = sex;
        this.code = code;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

}
User
package lianxi802;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.*;

public class UserSignIn {
    static Scanner input = new Scanner(System.in);
    // 存储注册的用户
    static Map<String, User> map = new HashMap<String, User>();

    // 注册10个用户
    static {
        User u1 = new User("zt1", 20, "", "123456");
        User u2 = new User("zt2", 21, "", "123456");
        User u3 = new User("zt3", 22, "", "123456");
        User u4 = new User("zt4", 23, "", "123456");
        User u5 = new User("zt5", 24, "", "123456");
        User u6 = new User("zt6", 25, "", "123456");
        User u7 = new User("zt7", 26, "", "123456");
        User u8 = new User("zt8", 27, "", "123456");
        User u9 = new User("zt9", 28, "", "123456");
        User u10 = new User("zt10",29, "", "123456");
        map.put(u1.getName(), u1);
        map.put(u2.getName(), u2);
        map.put(u3.getName(), u3);
        map.put(u4.getName(), u4);
        map.put(u5.getName(), u5);
        map.put(u6.getName(), u6);
        map.put(u7.getName(), u7);
        map.put(u8.getName(), u8);
        map.put(u9.getName(), u9);
        map.put(u10.getName(), u10);
        
    }
    
    //存储注册的用户
    public static void cc(User user) {
        map.put(user.getName(), user);
        xlh();
    }

    // 序列化集合
    public static void xlh() {
        ObjectOutputStream oos = null;
        FileOutputStream fos = null;

        try {
            fos = new FileOutputStream("g:/users");
            oos = new ObjectOutputStream(fos);
            oos.writeObject(map);
            oos.flush();
//            System.out.println("已完成序列化集合!");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                oos.close();
                fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

    }

    // 用户登入
    public void signIn() {

        System.out.println("……………………………………………………登入……………………………………………………");
        System.out.println("请输入用户名:");
        String name = input.next();
        System.out.println("请输入用户密码:");
        String code = input.next();

        // 反序列化集合
        FileInputStream fis = null;
        ObjectInputStream ois = null;

        try {
            fis = new FileInputStream("g:/users");
            ois = new ObjectInputStream(fis);
            Map<String, User> map = (Map<String, User>) ois.readObject();

            // 验证

            if (map.get(name) != null) {
                // 验证密码
                if (code.equals(map.get(name).getCode())) {
                    System.out.println("登入成功,您的账号信息如下:");
                    System.out.println(map.get(name));
                } else {
                    System.out.println("密码输入错误,登入失败!");
                }

            } else {
                System.out.println("登入失败,没有该用户名!");
            }

        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            try {
                ois.close();
                fis.close();

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }

}
登入
package lianxi802;

import java.util.*;

//用户注册
public class UserZC {
    static Scanner input = new Scanner(System.in);

    public void zc() {
        System.out.println("请输入用户名:");
        String name = input.next();
        System.out.println("请输入您的年龄:");
        int age = input.nextInt();
        System.out.println("请输入您的性别:");
        String sex = input.next();
        System.out.println("请输入用户密码:");
        String code = input.next();
        User u = new User(name, age, sex, code);
        
        UserSignIn.map.put(name, u);
        System.out.println("注册成功!");
        UserSignIn.cc(u);
    }
}
注册

运行

        先注册再登入  

  

    

  直接登入

  

猜你喜欢

转载自www.cnblogs.com/zeng1997/p/11288647.html