JavaでシリアライズのSerializableインターフェースを実装する方法
Java オブジェクトのシリアライズを実行するには、次の手順に従う必要があります:
- Serializable
- シリアライズ可能
public class MyClass implements Serializable {
// 类的内容
}
- オブジェクト出力ストリーム
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();
}
- オブジェクト入力ストリーム
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修飾子を付けます。