Hi, ich versuche grad mein Programm etwas 'aufzupeppen'. Das Programm beinhaltet eine Speicherfunktion welches einfach das komplette Programm über Serialisierung speichert. Bisher wird dazu einfach eine Datei im selebn Verezcihnis abgelegt, indem auch das Programm (jar) liegt.
Ich wollte das ganze jetzt so abändern, dass man auswählen kann wo man die Datei speichern möchte.
Ich nutze dazu den JFileChooser aber ich denke ich habe einen Logikfehler im Code.
Bisher lief die Speicherung mit:
Angenommen der Nutzer wählt jetzt einen Zielornder aus - und klickt auf 'speichern' ...
wie bekomme ich den objektStrom dazu, die Datei genau unter dem Pfad abzulegen?
So sieht der Code bisher aus:
Ich denke nicht, dass das Problem sonderlich komplex ist aber wie immer - bekomm ichs irgendwie nicht hin, hoffe ihr könnt mir da n Hinweis geben!
Grüße,
wyldstyle
Ich wollte das ganze jetzt so abändern, dass man auswählen kann wo man die Datei speichern möchte.
Ich nutze dazu den JFileChooser aber ich denke ich habe einen Logikfehler im Code.
Bisher lief die Speicherung mit:
Code:
datenStrom = new FileOutputStream(datum);
objektStrom = new ObjectOutputStream(datenStrom);
objektStrom.writeObject(this);
Angenommen der Nutzer wählt jetzt einen Zielornder aus - und klickt auf 'speichern' ...
wie bekomme ich den objektStrom dazu, die Datei genau unter dem Pfad abzulegen?
So sieht der Code bisher aus:
Code:
private void erstellespeichernDialog() {
FileOutputStream datenStrom;
ObjectOutputStream objektStrom;
tischneuzeichnen();
System.out.println("Speichervorgang starten");
Date date = new Date();
String datum = date.toString()+".codeem";
datum = datum.replaceAll(" ", "");
datum = datum.replaceAll(":", ".");
datum = datum.replaceAll("CEST", "");
String name;
speicherauswahl.setDialogTitle(" Wo m\u00F6chtest du speichern?");
speicherauswahl.setFileFilter(new FileFilter() {
@Override
public boolean accept(File f) {
return f.isDirectory()
|| f.getName().toLowerCase().endsWith(".codeem");
}
@Override
public String getDescription() {
return "Texas Code'em Speicherst\u00E4nde";
}
});
int zustand = speicherauswahl.showSaveDialog(null);
speicherauswahl.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
speicherauswahl.getCurrentDirectory();
if (zustand == JFileChooser.APPROVE_OPTION) {
try{
datenStrom = new FileOutputStream(datum);
objektStrom = new ObjectOutputStream(datenStrom);
objektStrom.writeObject(this);
objektStrom.close();
// tisch.setSpielverlauf("Speicherstand "+ datum +" angelegt.");
}catch (Exception e){
System.out.println("Fehler beim Speichervorgang, ABBRUCH");
e.printStackTrace();
}
}
}
Ich denke nicht, dass das Problem sonderlich komplex ist aber wie immer - bekomm ichs irgendwie nicht hin, hoffe ihr könnt mir da n Hinweis geben!
Grüße,
wyldstyle