▶ \blacktriangleright ▶ 序列化和反序列化
-
序列化
把内存中的对象转成字节序列或者是其他的数据传输协议,再存到磁盘中(永久性)
import java.io.*; public class TestSer { public static void main(String[] args) throws IOException, ClassNotFoundException { Person person = new Person("张三",20); //序列化 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("F:\\test/person")));//将结果写到哪个路径下的那个文件 oos.writeObject(person); } }
-
反序列化
把磁盘中的持久化的数据转成内存中的对象
import java.io.*; public class TestSer { public static void main(String[] args) throws IOException, ClassNotFoundException { Person person = new Person("张三",20); //反序列化 ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("F:\\test/person")));//要读取的文件 Person o = (Person) ois.readObject(); System.out.println(o); } }
-
Person类 需要实现Serializable接口
import java.io.Serializable;
public class Person implements Serializable {
private String name;
private int age;
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
public Person() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}