# JFileChooser - Datei speichern



## JaninaSt (11. Sep 2012)

Hallo!

Ich verwende den JFileChooser zum Öffnen und Speichern von Dateien, habe aber beim Speichern Probleme.

In meinem Java Programm wird eine Access Datenbank erzeugt und diese möchte ich unter einem bestimmten Pfad, der allerdings vom Benutzer frei wählbar sein soll, abspeichern.

Wenn ich das richtig gelesen habe sollte das ja mit der Methode setSelectedFile() funktionieren?
Da tut sich bei mir aber gar nichts wenn ich auf speichern gehe.
Habe jetzt mal probiert einfach irgendeine Datei abzuspeichern, hier zum Beispiel test.txt,  aber das geht auch nicht.


```
public static void saveFile(){
		
	// JFileChooser-Objekt erstellen
        JFileChooser chooser = new JFileChooser();
        // Dialog zum Speichern von Dateien anzeigen
        chooser.showSaveDialog(null);
		    
        chooser.setSelectedFile( new File("c:/test.txt") );
	}
```

Kann mir jemand sagen was ich falsch mache oder vergesse? Oder hab ich komplett die falsche Methode?

Danke schon mal!

Lg, Janina


----------



## eRaaaa (11. Sep 2012)

Der FileChooser macht nur das was der Name aussagt, er wählt eine Datei aus, von Speichern steht nirgends etwas. Das Speichern (Schreiben der Daten) musst du schon selbst irgendwie implementieren. Der FileChooser liefert dir nur ein UI-Werkzeug mit dem der User eine Datei/Ordner auswählen kann!

JFileChooser (Java Platform SE 6)
How to Use File Choosers (The Java™ Tutorials > Creating a GUI With JFC/Swing > Using Swing Components)


----------



## kaetzacoatl (11. Sep 2012)

```
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(this);
FileOutputStream fos = new FileOutputStream(chooser.getSelectedFile());
//speichern
```
Steht sicher aber auch in den Links.


----------



## JaninaSt (11. Sep 2012)

Super danke.

Wenn jetzt aber nur der Pfad vom Benutzer bestimmt werden darf, die Datei selbst aber einen fixen Namen haben muss, sprich der Name soll dann schon im Fenster drinnen stehen, so dass er nur mehr den Pfad auswählt und auf speichern gehen muss, geht das auch?


----------



## kaetzacoatl (11. Sep 2012)

```
JFileChooser chooser = new JFileChooser();
chooser.showSaveDialog(this);
FileOutputStream fos = new FileOutputStream(chooser.getSelectedFile().getPath()+"/"+"name der datei");
```
Vielleicht noch prüfen ob es auch wirklich ein verzeichnis ist...


----------



## Clayn (11. Sep 2012)

Oder den FileSelectionMode auf DIRECTORIES_ONLY setzen so das er nur Verzeichnisse anzeigt


----------



## JaninaSt (11. Sep 2012)

Mit getPath() bekomme ich aber nur den Pfad zurück und dann wird mit + "..." ein Dateiname daran gehängt.

Aber so kann ich nichts mit einem bestimmten Namen speichern, bzw. wird so gar nichts abgespeichert.


----------



## Michael... (12. Sep 2012)

Die Klasse File bietet eine Methode, um Dateien anzulegen File (Java Platform SE 7 )


----------

