現在、私はファイルから "Variable"型のArrayListsを保存し読み込むことができるプログラムを持っています。しかし、私は別のオブジェクト( "Variables"、 "Functions"などの異なるクラスのインスタンス)を1つのファイルから保存してロードできるようにしたいと考えています。複数のArrayListをJavaの1つのファイルに保存/読み込み
public SaveState(){
ObjectOutputStream out = null;
try {
out = new ObjectOutputStream(new FileOutputStream("vars.stt"));
} catch (IOException e) {
e.printStackTrace();
}
ArrayList<Variables> vars = new ArrayList<>();
vars.add(new Variables("g", 5));
vars.add(new Variables("f", -3.12));
try {
out.writeObject(vars);
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public LoadState(){
ObjectInputStream in = null;
try {
in = new ObjectInputStream(new FileInputStream("vars.stt"));
} catch (IOException e) {
e.printStackTrace();
}
try {
//final Object o = in.readObject();
final ArrayList<Variables> vars = (ArrayList<Variables>) in.readObject();
System.out.println(vars.toString());
} catch (IOException | ClassNotFoundException e) {
e.printStackTrace();
}
}
このコードは、私だけがファイルから一つのオブジェクトタイプをロードすることができます:ここで私が今持っているコードです。この方法で複数のオブジェクトタイプを保存/ロードする方法はありますか?
関数と変数の基本クラスを作成し、基本クラス型の配列リストを使用しようとしませんでしたか? –
@ImeshaSudasingha正直なところ私はそれができるのかどうか分からないので、たくさんのコード(数百行)をリファクタリングする必要があります。別の解決策がありますか? – Arman
いいえ、基本クラス(「ProgramElement」など)を作成することができます。コードをリファクタリングする必要はありません。 –