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


     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、登录	2、注册");
     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 }
    测试类
  • 相关阅读:
    matplotlib-形状
    matplotlib-区域填充
    C++文件操作
    画数学公式
    文字
    画注释
    Doubango简介-sip
    boost的asio接收单路大数据量udp包的方法
    Boost.Asio基本原理(CSDN也有Markdown了,好开森)
    boot asio 非阻塞同步编程---非阻塞的accept和receive。
  • 原文地址:https://www.cnblogs.com/Dean-0/p/11290055.html
Copyright © 2020-2023  润新知