Sto sviluppando un programma GUI su larga scala, dove ho un sacco di dati di progetto che devono essere memorizzati su comando locally
.Salvataggio dei dati del progetto. Come lo faresti?
Attualmente, sto salvando tutte le strutture di dati a livello mondiale in una classe salvataggio (progetto), e poi la serializzazione in un file di disco fisso locale:
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());
}
ora sto serializzazione ad un file locale :
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();
}
}
la mia domanda è questa: c'è un difetto; o un modo migliore per salvare i file sul tuo disco fisso locale? Non voglio usare XML o qualsiasi DB.
- Grazie in anticipo
Per evitare suggerimenti che non corrispondono alle tue esigenze, può essere utile dire di più sul motivo per cui non vuoi utilizzare XML o un database. È una preferenza personale, nel qual caso una buona argomentazione potrebbe convincerti del contrario? O un duro requisito del progetto per qualche motivo? – jfrank