Exceptions
Bei Dateizugriffen sollten immer
Try-CatchBlöcke verwenden werden. Sonst kann es zu Programmabstürzen oder Fehlern in den Dateien führen. Fehlerbehandlung > Exceptions bei Dateizugriffen
Pfad zur Datei
Der Pfad muss vom Typ Path sein. Dafür muss import java.nio.file.Path und import java.nio.file.Paths importiert sein.
Um mit ./datei.txt auf die Datei zuzugreifen, muss sie auf oberster Ebene im Projekt liegen.
Pfad zum Userprofil:
Path pfad = Paths.get(System.getProperty("user.home")+"/datei.txt");
Exceptions bei Dateizugriffen
Bei Dateizugriffen sollte das Öffnen der Datei immer in den runden Klammern () des try Blocks passieren. Wenn anschließend das Programm abgebrochen wird bevor die Datei geschlossen wurde, werden diese Dateien trotzdem wieder geschlossen
try (
PrintWriter out = new PrintWriter("/Pfas/zur/Datei.txt")
){
out.println("Test2");
} catch (FileNotFoundException e) {
// ... Fehlermeldung ...
}Ganze Datei ausgeben
try {
Path pfad = Paths.get("D:/wortliste.txt");
for(String zeile : Files.readAllLines(pfad)){
System.out.println(zeile);
}
} catch (IOException e) {
System.err.println("Ein- oder Ausgabefehler: " + e.getLocalizedMessage());
} catch (InvalidPathException e) {
System.err.println("Ungültiger Pfad: " + e.getLocalizedMessage());
}In Datei schreiben
Modul: import java.io.PrintWriter
try (
PrintWriter out = new PrintWriter("D:/Ausgabedatei.txt"); // Stream öffnen
)
{
out.println("Test2"); // eine Zeile schreiben
catch(FileNotFoundException ex){
System.out.println("Datei nicht gefunden");
}Hier wird der Text in der Datei überschrieben
Text an Datei anhängen
Path pfad = Paths.get("D:/Ausgabedatei.txt");
try(
BufferedWriter bw = Files.newBufferedWriter(pfad, StandardOpenOption.APPEND);
PrintWriter out = new PrintWriter(bw);
){
out.println("Test4");
}catch(FileNotFoundException ex){
System.out.println("Datei nicht gefunden");
}Dateiauswahlfenster
FileChooser fileChooser = new FileChooser();
fileChooser.setTitle("Datei öffnen");
File selectedFile = fileChooser.showOpenDialog();
if(selectedFile != null){
Path pfad = selectedFile.toPath();
// oder z.B. String pfadString = selectedFile.getPath();