序列化
import java.io.*;
public class TestObjectInputOutputStream {
public static void main(String[] args) {
Person person1 = new Person("小明", 16);
Person person2 = new Person("小七", 18);
ObjectOutputStream objectOutputStream = null;
try {
objectOutputStream = new ObjectOutputStream(new FileOutputStream("person"));
objectOutputStream.writeObject(person1);
objectOutputStream.flush();
objectOutputStream.writeObject(person2);
objectOutputStream.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
assert objectOutputStream != null;
objectOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
反序列化
import java.io.*;
public class TestObjectInputOutputStream2 {
public static void main(String[] args) {
ObjectInputStream objectInputStream = null;
try {
objectInputStream = new ObjectInputStream(new FileInputStream("person"));
Person person1 = (Person) objectInputStream.readObject();
System.out.println(person1);
Person person2 = (Person) objectInputStream.readObject();
System.out.println(person2);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (objectInputStream != null) {
try {
objectInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
实现序列类化的要求
- 1.要实现Serializable接口或Enternalizable接口
- 2.类的属性也要实现erializable接口或Enternalizable接口
- 3.提供一个版本号private static final long serialVersionUID
- 4.使用static或transient修饰的属性不可序列化