私のJavaプロジェクトにはいくつかのクラス/ Javaファイルがありますが、使用されているもののすべてのリストが保存されているMenuクラスにあります。データに関しては、6 つのリスト (2 つの ArrayLists と 4 つの HashMaps) を保存します。1 つが Menu クラスで定義され、他は異なるクラスにあります。そのため、プログラムを閉じて以前の状態を復元するときに、 savestateとloadstateを作成する必要があります。すべてのリストはシリアライズ可能で実装されています
すべてのメニューの状態を保存して再読み込みすることは可能ですか、それともすべてのリストを個別に保存する必要がありますか? すべてを1つのファイルに保存するのは素晴らしいことです。
これが私が持っている機能で、動作し(警告/エラーなし)、コンパイルされますが、ファイル「datafiles」は作成されません。
何か案は?
private void MenuSave(){
String wd = System.getProperty("user.dir");
JFileChooser fc = new JFileChooser(wd);
int rc = fc.showDialog(null, "Select Data File Location to Save");
if (rc == JFileChooser.APPROVE_OPTION)
{
File file = fc.getSelectedFile();
String filename = file.getAbsolutePath();
savestate(lf, lc, lv, lcl,filename);}
}
public void savestate(Cars la, Bikes l2, Motos l3, Planes l4, People n1, Food n2, String filename){
int i;
File out = new File(filename);
ObjectOutputStream output = null;
try{
output = new ObjectOutputStream(new FileOutputStream(filename));
for(Car c : la.getCars().values()){
output.writeObject(c);
}
for(Bike b : l2.getBikes().values()){
output.writeObject(b);
}
for(Moto m : l3.getMotos().values()){
output.writeObject(m);
}
for(i=0;i<n1.size();i++)
{output.writeObject(n1.get(i)));
}
for(i=0;i<n2.size();i++)
{output.writeObject(n2.get(i)));
}
}catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
} finally {
try {
if (output != null) {
output.flush();
output.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}