使用序列化完成注册及登录

 1 import java.io.Serializable;
 2 
 3 /**
 4  * @author Administrator
 5  *    用户信息封装
 6  */
 7 public class User implements Serializable{
 8     private String name;
 9     private String password;
10     public User() {}
11     public User(String name, String password) {
12         super();
13         this.name = name;
14         this.password = password;
15     }
16     public String getName() {
17         return name;
18     }
19     public void setName(String name) {
20         this.name = name;
21     }
22     public String getPassword() {
23         return password;
24     }
25     public void setPassword(String password) {
26         this.password = password;
27     }
28 }
用户信息封装
 1 import java.io.File;
 2 import java.io.Serializable;
 3 import java.util.HashMap;
 4 
 5 /**
 6  * @author Administrator
 7  *    创建Map集合,存放用户信息
 8  */
 9 public class UserInit implements Serializable{
10     static HashMap<String,User> users = new HashMap<>(); //创建存放用户的集合
11     static {
12         ObjectOutInputStreamDome.oboi("Verde","123456");
13     }
14 }
创建Map集合,存放用户信息
 1 import java.io.FileNotFoundException;
 2 import java.io.FileOutputStream;
 3 import java.io.IOException;
 4 import java.io.ObjectOutputStream;
 5 
 6 /**
 7  * @author Administrator
 8  *    序列化输出流
 9  */
10 public class ObjectOutInputStreamDome {
11     public static void oboi(String name,String password) {
12         FileOutputStream fo = null;
13         ObjectOutputStream oos = null;
14         
15         try {
16             fo = new FileOutputStream("G:/垃圾/User.txt");
17             oos = new ObjectOutputStream(fo);
18             User user = new User(name,password);
19             UserInit.users.put(name, user);
20             oos.writeObject(UserInit.users);
21         } catch (FileNotFoundException e) {
22             // TODO Auto-generated catch block
23             e.printStackTrace();
24         } catch (IOException e) {
25             // TODO Auto-generated catch block
26             e.printStackTrace();
27         }finally {
28             try {
29                 if(oos!=null) {
30                     oos.flush();
31                     oos.close();
32                 }
33                 if(fo!=null) {
34                     fo.close();
35                 }
36             } catch (IOException e) {
37                 // TODO Auto-generated catch block
38                 e.printStackTrace();
39             }
40         }
41     }
42 }
序列化输出流
 1 /**
 2  * @author Administrator
 3  *    序列化输入流
 4  */
 5 public class ObjextInputStreamDome {
 6     public static HashMap<String,User> obin() {
 7         FileInputStream fi = null;
 8         ObjectInputStream ois = null;
 9         
10         try {
11             fi = new FileInputStream("G:/垃圾/User.txt");
12             ois = new ObjectInputStream(fi);
13             HashMap<String, User> users = (HashMap<String, User>)ois.readObject();
14             return users;
15         } catch (FileNotFoundException e) {
16             // TODO Auto-generated catch block
17             e.printStackTrace();
18         } catch (ClassNotFoundException e) {
19             // TODO Auto-generated catch block
20             e.printStackTrace();
21         }catch (IOException e) {
22             // TODO Auto-generated catch block
23             e.printStackTrace();
24         } finally {
25             try {
26                 ois.close();
27                 fi.close();
28             } catch (IOException e) {
29                 // TODO Auto-generated catch block
30                 e.printStackTrace();
31             }
32         }
33         return null;
34     }
35 }
序列化输入流
 1 /**
 2  * @author Administrator
 3  *    登录操作
 4  */
 5 public class UserLogin {
 6     //登录
 7     public static void Login() {
 8         boolean flag = false;
 9         do {
10             System.out.println("请输入登录账号:");
11             String name = TestDome.input.next();
12             System.out.println("请输入密码:");
13             String password = TestDome.input.next();
14             flag = isexist(name,password);
15             if(flag) {
16                 return;
17             }else {
18                 System.out.println("用户名不存在或者密码错误,请重新输入!");
19             }
20         }while(!flag);
21         
22         
23     }
24     
25     //判断是否正确
26     public static boolean isexist(String name,String password) {
27         HashMap<String, User> users = ObjextInputStreamDome.obin();
28         Set<String> keys = users.keySet();
29         for(String key:keys) {
30             User user = users.get(key);
31             if(user.getName().equals(name)&&user.getPassword().equals(password)) {
32                 System.out.println("登录成功!");
33                 return true;
34             }
35         }
36         return false;
37     }
38 }
登录操作
 1 import java.util.HashMap;
 2 import java.util.Set;
 3 
 4 /**
 5  * @author Administrator
 6  *    注册操作
 7  */
 8 public class UserLogon {
 9     //注册
10     public static void Logon() {
11         boolean flag = true;
12         do {
13             System.out.println("请输入账号名:");
14             String name = TestDome.input.next();
15             System.out.println("请输入登录密码:");
16             String password = TestDome.input.next();
17             ObjectOutInputStreamDome.oboi(name, password);
18             flag = isexist(name,password);
19             if(flag) {
20                 return;
21             }
22         }while(!flag);
23         
24     }
25     
26     // 判断存在
27     public static boolean isexist(String name,String password) {
28         HashMap<String, User> users = ObjextInputStreamDome.obin();
29         Set<String> keys = users.keySet();
30         for (String key : keys) {
31             User user = users.get(key);
32             if (!user.getName().equals(name) ) {
33                 System.out.println("注册成功!");
34                 ObjectOutInputStreamDome.oboi(name, password);
35                 return true;
36             }
37         }
38         System.out.println("用户名已存在,请重新输入!");
39         return false;
40     }
41 }
注册操作
 1 /**
 2  * @author Administrator
 3  *    测试类
 4  */
 5 public class TestDome {
 6     static Scanner input = new Scanner(System.in);
 7     public static void main(String[] args) {
 8         System.out.println("1、登录\t2、注册");
 9         String choose = input.next();
10         switch (choose) {
11         case "1":
12             UserLogin.Login();
13             break;
14         case "2":
15             UserLogon.Logon();
16             break;
17         default:
18             break;
19         }
20     }
21 }
测试类

 

转载于:https://www.cnblogs.com/Dean-0/p/11290055.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值