ObjectOutputStream()
ObjectInputStream()
Serializable
// serializable class , need implement ‘serialazable interface’
// 需要序列化的类,要实现serialazable接口
import java.io.Serializable;
public class Person implements Serializable {
// 当本对象在更改之前已经序列化完成,且在后续使用中更改了本对象,将会出现java.io.InvalidClassException
// 释放以下代码可以将java.io.InvalidClassException解决
// static final long serialVersionUID = 10086L;
private String name ;
public Integer age;
// constructor
public Person() {
}
public Person(String name, Integer age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
// Code Implements
// 代码实现序列化和反序列化
import java.io.*;
public class WriteObjectDome{
public static void main(String[] args) throws IOException, ClassNotFoundException {
// method_ObjectOutputStream();
method_ObjectInputStream();
}
// Serializable 序列化
public static void method_ObjectOutputStream() throws IOException{
FileOutputStream fileOutputStream = new FileOutputStream("E:\\folder_io_dome\\domeDir03\\Person_1.object");
ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
Person p1 = new Person("yuanhao", 18);
objectOutputStream.writeObject(p1);
objectOutputStream.flush();
}
// Un Serializable 反序列化
public static void method_ObjectInputStream() throws IOException, ClassNotFoundException {
FileInputStream fileInputStream = new FileInputStream("E:\\folder_io_dome\\domeDir03\\Person_1.object");
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
Object object_person = objectInputStream.readObject();
Person p1 = null;
if (object_person instanceof Person) p1 = (Person)object_person;
System.out.println("Name is : " + p1.getName() + " Age is :" + p1.getAge());
}
}