Javaでファイルにオブジェクトを格納する
オブジェクトの保存と読み込みは、Java のシリアライズとデシリアライズによって実現されます。
- シリアライズ可能な
import java.io.Serializable;
public class MyClass implements Serializable {
// 类的成员和方法
// ...
}
- オブジェクトを作成してファイルにシリアライズします。
// 创建对象
MyClass obj = new MyClass();
// 序列化对象到文件
try {
FileOutputStream fileOut = new FileOutputStream("object.ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(obj);
out.close();
fileOut.close();
System.out.println("对象已存储到文件中");
} catch (IOException e) {
e.printStackTrace();
}
- ファイルを読み込んでデシリアライズする
// 从文件中读取对象
try {
FileInputStream fileIn = new FileInputStream("object.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();
}
上記のコードでは、MyClassオブジェクトはobject.serというファイルにシリアライズされます。その後、ファイルからデシリアライズすることで読み込まれ、オブジェクトは再作成されます。なお、クラスをシリアライズ可能にするためにはSerializableインターフェースを実装し、非シリアライズされるメンバーはtransientでマークする必要があります。