多个对象的序列化与反序列化
序列化:即是将对象化为字符串的存储。
反序列化:即将存储的字符串再转换为对象。
通过Map集合将多个Students类的信息进行序列化与反序列化。
下面为创建的Students类:
import java.io.Serializable;
public class Student implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String sex;
private int age;
public Student(String name, String sex, int age, String cla) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.cla = cla;
}
public Student() {
super();
}
private String cla;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getCla() {
return cla;
}
public void setCla(String cla) {
this.cla = cla;
}
}
下面为创建的进行序列化与反序列化Students类:
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class SerialStudent { public static void main(String[] args)throws Exception { // TODO Auto-generated method stub //调用序列化方法将对象进行序列化 SerialStud(); //创建map集合接收反向序列化的对象 Map<Integer,Student> map = OppositeSerialStud(); //将序列化的对象打出到控制台 Iterator<Integer> ite=map.keySet().iterator(); while(ite.hasNext()){ Integer key = ite.next(); Student stu = map.get(key); System.out.println(stu.getName()+"\t"+stu.getAge()+"\t"+stu.getSex()+"\t"+stu.getCla()); } } //序列化Student类 public static void SerialStud()throws Exception{ //存放多个对象信息 Map<Integer,Student> map = new HashMap<Integer,Student>(); // String name, String sex, int age, String cla map.put(001, new Student("张三丰","男",19,"高中")); map.put(002, new Student("李寻欢","男",13,"初中")); map.put(003, new Student("周芷若","女",9,"小学")); //序列化map集合 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("c:/ce/student.txt"))); oos.writeObject(map); oos.close(); } //反向序列化Student类 public static Map<Integer,Student> OppositeSerialStud()throws Exception{ ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("c:/ce/student.txt"))); Map<Integer,Student> map = (Map<Integer,Student>)ois.readObject(); ois.close(); return map; } }
为了取得可直视的效果,将序列化进行了输出,可以直接在控制台进行观看。
浙公网安备 33010602011771号