EAD II – Übung 7 Dateiarbeit mit Java Arbeit mit Dateien ! Einlesen und Ausgeben von Daten über Streams Klassen FileReader und FileWriter zum Lesen der Datenströme ! Klasse File bietet Methoden zum Zugriff auf eine Dateien, z.B. Anlegen von Verzeichnissen, Umbenennen usw. ! Dateien werden dauerhaft auf einem Datenträger gespeichert ! Zusammenspiel zwischen Java und Betriebssystem – während der Ausführung können Laufzeitfehler auftreten Behandlung von Laufzeitfehlern ! Exceptions sind Objekte mit Informationen über Programmfehler ! Exception-Handler Programmabschnitt zum Schutz von Anweisungen vor möglichen Fehlern, enthält Anweisungen zur Meldung des Fehlers bzw. zum Umgang damit try { eine oder mehrere geschützte Anweisungen } catch (Exception e) { System.out.println(“Fehler“); } Arbeit mit Dateien ! Java verlangt Fehlerbehandlung bei Arbeit mit Dateien, also try-catch-Konstrukt ! Dateidialog kann noch im ungeschützten Programmteil stehen ! Zuweisung der Datenströme muss in den geschützten Bereich ! erforderliche Pakete müssen importiert werden import java.io.*; //für File, Reader import java.awt.*; //für Dialogfenster Arbeit mit Dateien - Schreiben ! über Dateidialog die Dateien zum Speichern auswählen ! dann ausgewählte Datei an Dateivariable zuweisen FileDialog dialog = new FileDialog(new Frame(), "Datei öffnen", FileDialog.SAVE); dialog.setVisible(true); if (dialog.getFile() == null) return; datei = new File(dialog.getDirectory(),dialog.getFile()); Arbeit mit Dateien - Schreiben ! Verknüpfen der physischen Datei mit dem StreamReader und Schreiben try { BufferedWriter ausgabe = new BufferedWriter(new FileWriter(datei)); inhalt = “Das ist der Dateiinhalt.“; ausgabe.write(inhalt); ausgabe.close(); } catch (Exception e) { ... } Arbeit mit Dateien - Lesen ! über Dateidialog die Dateien zum Öffnen auswählen ! dann ausgewählte Datei an Dateivariable zuweisen FileDialog dialog = new FileDialog(new Frame(), "Datei öffnen", FileDialog.LOAD); dialog.setVisible(true); if (dialog.getFile() == null) return; datei = new File(dialog.getDirectory(),dialog.getFile()); Arbeit mit Dateien - Lesen ! Verknüpfen der physischen Datei mit dem StreamReader und Lesen try { BufferedReader ein = new BufferedReader(new FileReader(datei)); while (ein.ready() == true) { eingabe = ein.readLine(); System.out.println(eingabe); } ein.close(); } catch (Exception e) ... Arbeit mit Dateien ! BufferedReader und BufferedWriter lesen bzw. schreiben Unicodezeichen ! Daten werden immer aus einem zugeordneten Reader-Objekt bezogen oder in Writer-Objekt geschrieben ! readLine() liest alle Zeichen bis zum Zeilenende in einen String ! write() schreibt einen String in die Datei ! soll eine neue Teile begonnen werden, muss man newLine() aufrufen