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.注册\t2.登录\t3.退出");
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 }