实现注册的账户在重新运行程序后依然可以登录

 1 package com.test2;
 2 
 3 import java.io.Serializable;
 4 /**
 5  * 用户类
 6  * @author jjit
 7  *
 8  */
 9 public class User implements Serializable{
10     private String name;
11     private int id;
12     private String password;
13     public String getName() {
14         return name;
15     }
16     public void setName(String name) {
17         this.name = name;
18     }
19     public int getId() {
20         return id;
21     }
22     public void setId(int id) {
23         this.id = id;
24     }
25     public String getPassword() {
26         return password;
27     }
28     public void setPassword(String password) {
29         this.password = password;
30     }
31     public User(String name, int id, String password) {
32         super();
33         this.name = name;
34         this.id = id;
35         this.password = password;
36     }
37     public User() {
38         super();
39     }
40     public String toString() {
41         return "User [name=" + name + ", id=" + id + ", password=" + password + "]";
42     }
43     
44 }
 1 package com.test2;
 2 /**
 3  * IO对象的输入输出
 4  */
 5 import java.io.FileInputStream;
 6 import java.io.FileNotFoundException;
 7 import java.io.FileOutputStream;
 8 import java.io.IOException;
 9 
10 public class UserIO {
11     public static void ObjectOutputStream(User user) {
12         //序列化
13         java.io.ObjectOutputStream oos = null;
14         FileOutputStream fos = null;
15         
16         try {
17             fos = new FileOutputStream(user.getId()+".txt");
18             oos = new java.io.ObjectOutputStream(fos);
19             
20             oos.writeObject(user);
21             oos.flush();
22         } catch (IOException e) {
23             e.printStackTrace();
24         } finally {
25             try {
26                 oos.close();
27                 fos.close();
28             } catch (IOException e) {
29                 e.printStackTrace();
30             }
31         }
32     }
33     public static User ObjectInputStream(User user1) {
34         //反序列化
35         java.io.ObjectInputStream ois = null;
36         FileInputStream fis = null;
37         
38         try {
39             fis = new FileInputStream(user1.getId()+".txt");
40             ois = new java.io.ObjectInputStream(fis);
41             User u = (User)ois.readObject();
42             if(u!=null) {
43                 return u;
44             }
45         } catch (FileNotFoundException e) {
46 //            e.printStackTrace();
47         } catch (IOException e) {
48             e.printStackTrace();
49         } catch (ClassNotFoundException e) {
50             e.printStackTrace();
51         } finally {
52             try {
53                 if(ois!=null) {
54                     ois.close();
55                     
56                 }
57                 if(fis != null) {
58                     fis.close();
59                 }
60                 
61             } catch (IOException e) {
62                 e.printStackTrace();
63             }
64         }
65         return null;
66     }
67 }
 1 package com.test2;
 2 /**
 3  * 实现类
 4  */
 5 import java.util.Scanner;
 6 
 7 public class Master {
 8     public void print() {
 9         Scanner sc = new Scanner(System.in);
10         User user = new User();
11         while(true) {
12             System.out.println("1.注册	2.登录	3.退出");
13             int choose = sc.nextInt();
14             switch (choose) {
15             case 1:
16                 System.out.println("请输入用户名:");
17                 user.setName(sc.next());
18                 System.out.println("请输入用户账号:");
19                 user.setId(sc.nextInt());
20                 System.out.println("请输入账号密码:");
21                 user.setPassword(sc.next());
22                 UserIO.ObjectOutputStream(user);
23                 System.out.println("注册成功");
24                 continue;
25             case 2:
26                 
27                 System.out.println("请输入用户账号:");
28                 int a = sc.nextInt();
29                 System.out.println("请输入账号密码:");
30                 String b = sc.next();
31                 User user1 = new User(null,a,b);
32                 User user2 =UserIO.ObjectInputStream(user1);
33                 if(user2 == null) {
34                     System.out.println("登录失败");
35                 }else if(user2.getId() == user1.getId()&&user2.getPassword().equals(user1.getPassword())) {
36                     System.out.println("登录成功");
37                 }else {
38                     System.out.println("密码或账号错误!");
39                 }
40                 break;
41             case 3:
42                 System.out.println("退出成功");
43                 break;
44 
45             default:
46                 break;
47             }
48         }
49     }
50 }
 1 package com.test2;
 2 /**
 3  * 测试类
 4  * @author jjit
 5  *
 6  */
 7 public class Main {
 8     public static void main(String[] args) {
 9         Master mt = new Master();
10         mt.print();
11     }
12 }
原文地址:https://www.cnblogs.com/Zhangchuanfeng1/p/10498409.html