Javaでシリアライズを実装する方法は何ですか?
Javaのシリアライズを実現するためには、以下の手順に従うことができます。
- シリアライズ可能
public class MyClass implements Serializable {
// class code here
}
- オブジェクトストリームの書き込みを行うオブジェクト
MyClass obj = new MyClass();
// 创建文件输出流
FileOutputStream fileOut = new FileOutputStream("file.ser");
// 创建对象输出流,将对象写入文件输出流
ObjectOutputStream out = new ObjectOutputStream(fileOut);
// 将对象写入输出流
out.writeObject(obj);
// 关闭输出流
out.close();
fileOut.close();
- 入力オブジェクトストリーム
// 创建文件输入流
FileInputStream fileIn = new FileInputStream("file.ser");
// 创建对象输入流,从文件输入流中读取对象
ObjectInputStream in = new ObjectInputStream(fileIn);
// 从输入流中读取对象
MyClass obj = (MyClass) in.readObject();
// 关闭输入流
in.close();
fileIn.close();
シリアライズされたクラスのすべての非静的メンバ変数がシリアライズされますが、静的メンバ変数はシリアライズされません。特定のメンバ変数をシリアライズしたくない場合は、transientキーワードを使用して修飾することができます。
また、シリアライズおよびデシリアライズプロセスをカスタマイズすることもでき、writeObject()およびreadObject()メソッドを実装して、シリアライズおよびデシリアライズプロセスを制御することが可能です。