要实现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
关键字标记。