创建一个ObjectOutputStream
调用ObjectOutputStream的writeObject方法,输出可序列化对象
package Serializable;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
public class WriteObject {
public static void main(String[] args) {
try(ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.txt"))){
Person per = new Person("snowalker", 19);
//per对象写入输出流
oos.writeObject(per);
} catch (Exception e) {
e.printStackTrace();
}
}
}
有参构造函数
package Serializable;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class ReadObject {
public static void main(String[] args) {
try(ObjectInputStream ois = new ObjectInputStream(new FileInputStream("object.txt"))) {
//从输入流中读取一个java对象,将其强制转换为Person对象
Person person =(Person) ois.readObject();
System.out.println("name: " + person.getName() + " age: " + person.getAge());
} catch (Exception e) {
e.printStackTrace();
}
}
}
name: snowalker age: 19
当对某个对象进行序列化时,系统会自动把该对象所有的参数依次进行序列化,如果某个参数引入了另一个对象,则被引用的对象也会被序列化,如果被引用的对象的参数,也引用了其他对象,则被引用的对象也会被序列化,这称之为递归序列化。