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 }