package xuliehua;
import java.io.Serializable;
//登录Enter 注册Enroll属性
public class EnrollAndEnter implements Serializable{
private String name;
private int vip;
private String possword;
/**
* 无参构造方法
*/
public EnrollAndEnter() {
}
/**
* 有参构造方法
* @param name
* @param vip
* @param possword
*/
public EnrollAndEnter(String name,String possword) {
this.name = name;
this.possword = possword;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getVip() {
return vip;
}
public void setVip(int vip) {
this.vip = vip;
}
public String getPossword() {
return possword;
}
public void setPossword(String possword) {
this.possword = possword;
}
}
package xuliehua;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
//创建注册的方法并序列化
public class ObjectIO {
static Scanner input = new Scanner(System.in);
EnrollAndEnter ele = new EnrollAndEnter();
public void bigen() {
do {
System.out.println("请选择:1、注册 2、登录 3、退出");
String str = input.next();
switch(str) {
case "1":
//创建对象
System.out.println("请输入账户名:");
ele.setName(input.next());
System.out.println("请输入密码:");
ele.setPossword(input.next());
System.out.println("注册成功");
ObjectOutputStream oos = null;
FileOutputStream fos = null;
try {
//创建序列化对象
System.out.println(ele.getName());
fos = new FileOutputStream("d:/"+ele.getName()+".txt");
oos = new ObjectOutputStream(fos);
oos.writeObject(ele);
oos.flush();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
oos.flush();
oos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
break;
case "2":
//创建反序列化对象
ObjectInputStream ois = null;
try {
System.out.println("您的账户名是:"+ele.getName()+",你的密码是:"+ele.getPossword());
System.out.println("请输入账户名:");
ele.setName(input.next());
System.out.println("请输入密码:");
ele.setPossword(input.next());
//反序列化
ois = new ObjectInputStream(new FileInputStream("d:/"+ele.getName()+".txt"));
EnrollAndEnter eae = (EnrollAndEnter)ois.readObject();
if(ele.getName().equals(eae.getName()) && ele.getPossword().equals(eae.getPossword())) {
System.out.println("登录成功");
}else {
System.out.println("账户名或者密码错误!");
}
} catch (IOException e) {
// e.printStackTrace();
System.out.println("账户名或者密码错误!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}finally {
try {
if(ois!=null) {
ois.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
break;
case "3":
System.out.println("谢谢使用");
return;
default :
System.out.println("输入有误请重输:");
}
}while(true);
}
}
package xuliehua;
//测试序列化
import java.util.Scanner;
public class ObjectIOText {
public static void main(String[] args) {
ObjectIO ot = new ObjectIO();
ot.bigen();
}
}
![]()