JavaのSerializableインターフェースをどのように呼び出すのですか?
Javaにおいて、オブジェクトをシリアライズ(オブジェクトをバイト列に変換して保存または転送すること)する必要がある場合は、そのオブジェクトに「Serializable」インターフェースを実装することができます。
Serializableインターフェースを呼び出すには、シリアル化したいクラスの宣言にimplementsキーワードを使用してそのインターフェースを導入します。例えば:
public class MyClass implements Serializable {
// 类的代码
}
その後、ObjectOutputStreamクラスを使用してオブジェクトを出力ストリームに書き込むことで、シリアライズ操作を実現できます。例:
MyClass obj = new MyClass();
try {
FileOutputStream fileOut = new FileOutputStream("file.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(obj);
out.close();
fileOut.close();
System.out.println("对象已经成功序列化");
} catch (IOException e) {
e.printStackTrace();
}
この例では、MyClassオブジェクトがfile.serというファイルに書き込まれます。他のオブジェクトもシリアライズする場合は、Serializableインターフェースを実装する必要がありますので注意してください。
ObjectInputStreamクラスを使用すると、デシリアライズ操作(つまりバイトストリームからオブジェクトを復元すること)が可能です。例えば、
try {
FileInputStream fileIn = new FileInputStream("file.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
MyClass obj = (MyClass) in.readObject();
in.close();
fileIn.close();
System.out.println("对象已经成功反序列化");
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
この例では、file.serという名前のファイルからバイトストリームを読み込んで、型変換を使用してそれをMyClassオブジェクトに変換します。