序列化:把对象转换成可以存储及传输的形式,也称为对象得持久化(把对象从堆内存中拿出到硬盘中)
反序列化:将存储在硬盘或者传输中的字节转换成对象
(把对象从硬盘中重新拿回到堆内存中)
import java.io.*;
public class TestObjSerializeAndDeserialize {
public static void main(String[] args) throws Exception {
SerializePerson();
Person person=DeserializePerson();
System.out.println(person.getAge()+person.getName());
}
public static void SerializePerson() throws IOException {
Person person=new Person();
person.setAge(10);
person.setName("hell");
ObjectOutputStream outputStream=new ObjectOutputStream(new FileOutputStream(new File("d:\\person.txt")));
outputStream.writeObject(person);
System.out.println("serialize success");
outputStream.close();
}
public static Person DeserializePerson() throws IOException, ClassNotFoundException {
ObjectInputStream inputStream=new ObjectInputStream(new FileInputStream(new File("d:\\person.txt")));
Person person=(Person) inputStream.readObject();
System.out.println("deserializePerson success");
return person;
}
}
import java.io.Serializable;
public class Person implements Serializable {
private int age;
private String name;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}