第一步:定义对象
@SuppressWarnings("serial")
class Person implements Serializable{ //实现Serializable接口
private String name;
private Integer age;
private Double height;
public Person() {
super();
}
public Person(String name, Integer age, Double height) {
super();
this.name = name;
this.age = age;
this.height = height;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public Double getHeight() {
return height;
}
public void setHeight(Double height) {
this.height = height;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", height=" + height + "]";
}
}
第二步:进行序列化与反序列化操作
public class Ser {
public static void main(String[] args) throws Exception{
ser(new Person("高渐离",33,18.9));
dser();
}
public static void ser(Object obj) throws Exception{
FileOutputStream os = new FileOutputStream(new File("D:"+File.separator+"Person.ser"));
// 要输出一个对象,OutputStream只能是字节流,所以对象必须继承Serializable接口
ObjectOutputStream oos = new ObjectOutputStream(os);
oos.writeObject(obj); // 对象序列化
oos.close();
}
public static void dser() throws Exception{
FileInputStream is = new FileInputStream(new File("D:"+File.separator+"Person.ser"));
ObjectInputStream ois = new ObjectInputStream(is);
System.out.println(ois.readObject()); // 对象反序列化
ois.close();
}
}