package test; import java.io.*; /** * @author shusheng * @description 序列化与反序列化流 * @Email shusheng@yiji.com * @date 2018/12/23 16:49 */ public class ObjectStreamDemo { //当有些变量不需要序列化时使用 transient 关键字申明不需要序列化的成员变量 public static void main(String[] args) throws IOException, ClassNotFoundException { //序列化数据其实就是把对象写到文本文件中 write(); //反序列化 read(); } private static void read() throws IOException, ClassNotFoundException { //创建反序列化对象 ObjectInputStream ois = new ObjectInputStream(new FileInputStream("a.txt")); Object obj = ois.readObject(); //释放资源 ois.close(); //输出对象 System.out.println(obj); } private static void write() throws IOException { //创建序列化对象 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("a.txt")); //创建对象 Person p= new Person("林青霞",27); //public final void writeObject(Object obj) oos.writeObject(p); //释放资源 oos.close(); } } class Person implements Serializable{ private static final long serialVersionUID = 2476243158969951686L; private String name; private int age; public Person(String name, int age) { this.name=name; this.age=age; } 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; } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } }