コマンドで保存する必要があるプロジェクトデータがたくさんある大規模なGUIプログラムを開発していますlocally
。
現在、すべてのグローバル データ構造を保存クラス (プロジェクト) に保存してから、それらをローカル ハードディスク ファイルにシリアル化しています。
public void saveChanges() {
ArrayList<Student> studentList = new ArrayList<>();
ArrayList<String> coursesList = new ArrayList<>();
ArrayList<Requirement> reqList = new ArrayList<>();
ArrayList<Risk> riskList = new ArrayList<>();
for (int x = 0; x < dlm.getSize(); x++) {
studentList.add(dlm.elementAt(x));
}
for (int x = 0; x < dlm2.getSize(); x++) {
coursesList.add(dlm2.elementAt(x));
}
for (int x = 0; x < dlm3.getSize(); x++) {
reqList.add(dlm3.elementAt(x));
}
for (int x = 0; x < riskTable.getRowCount(); x++) {
riskList.add((Risk) riskMap.get(dtm1.getValueAt(x, 0)));
}
project.setStudentAL(studentList);
project.setCoursesAL(coursesList);
project.setReqAL(reqList);
project.setRiskAL(riskList);
project.setLastUpdated(new Date().toString());
}
今、私はこれをローカルファイルにシリアライズしています:
public void saveProject(boolean defaultPath, String path) {
saveChanges();
FileOutputStream outFile;
try {
if (defaultPath) {
outFile = new FileOutputStream(directory + project.getProjectName() + ".proj");
} else {
outFile = new FileOutputStream(path + ".proj");
}
ObjectOutputStream outObject = new ObjectOutputStream(outFile);
outObject.writeObject(project);
outObject.close();
} catch (IOException e) {
System.out.println("Failed to save project");
e.printStackTrace();
}
}
私の質問は次のとおりです。デフォルトはありますか。ローカルのハードドライブにファイルを保存するより良い方法はありますか? XML や DB を使用したくありません。
- 前もって感謝します