要实现Java中的对象序列化,需要按照以下步骤进行:
Serializable
接口。Serializable
接口是一个标记接口,不包含任何方法,只是用来标记该类可以被序列化。public class MyClass implements Serializable {
// 类的内容
}
ObjectOutputStream
对象来将对象序列化为字节流。MyClass obj = new MyClass();
try {
FileOutputStream fileOut = new FileOutputStream("obj.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(obj);
out.close();
fileOut.close();
} catch (IOException i) {
i.printStackTrace();
}
ObjectInputStream
对象来从字节流中反序列化对象。MyClass obj = null;
try {
FileInputStream fileIn = new FileInputStream("obj.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
obj = (MyClass) in.readObject();
in.close();
fileIn.close();
} catch (IOException i) {
i.printStackTrace();
} catch (ClassNotFoundException c) {
c.printStackTrace();
}
以上就是实现Java中序列化的基本步骤。需要注意的是,被序列化的类的成员变量也必须是可序列化的,否则会抛出NotSerializableException
异常。如果某个成员变量不希望被序列化,可以使用transient
关键字标记。