Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()

Ähnliche Präsentationen


Präsentation zum Thema: "Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()"—  Präsentation transkript:

1 Ein-/ Ausgabe in Java ein Überblick

2 © till.haenisch@gmx.de eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println() Eingabe (von Konsole) mit System.in.readln() ? System.in ist vom Typ java.io.InputStream Methoden wie read(byte[]) ? keine Strings,... Streams lesen und schreiben einzelne Bytes normalerweise (?) ASCII/Unicode Zeichen Reader/Writer ggf. gepuffert BufferedReader/Writer

3 © till.haenisch@gmx.de Streams Folge von Bytes können zum Lesen und Schreiben von Bytes verwendet werden woher/wohin ? z.B. FileInputStream Streams als Schnittstelle zwischen Anwendung und Daten Für Text EA InputStreamReader/OutputStreamWriter Pufferung BufferedReader/BufferedWriter

4 © till.haenisch@gmx.de Beispiele // Einlesen von Tastatur InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } AnwendungBufferedReaderInputStreamReaderInputStream

5 © till.haenisch@gmx.de Einschub Exceptions Fehlerbehandlung im 'normalen' Code InputStreamReader isr = new InputStreamReader(System.in); if (isr == null) { System.out.println("Fehler beim Oeffnen"); System.exit(0); } else { BufferedReader in = new BufferedReader(isr); if (in == null) { System.out.println("Fehler beim Lesen"); System.exit(0); } else {... } }

6 © till.haenisch@gmx.de Fehlerbehandlung vom Code getrennt InputStreamReader isr = new InputStreamReader(System.in); if (isr == null) { iStatus = ERR_OPEN; goto Error; } BufferedReader in = new BufferedReader(isr); if (in == null) { iStatus = ERR_READER; goto Error; }... Error: switch (iStatus)...

7 © till.haenisch@gmx.de Exceptions ähnlich goto, aber 'sauberer' try { InputStreamReader isr = new InputStreamReader(System.in); if (isr == null) throw new IOException("Error opening"); BufferedReader in = new BufferedReader(isr); if (in == null) throw new IOException("Error in Reader");... } catch (IOException e) { }

8 © till.haenisch@gmx.de vordefinierte Exceptions oder gleich 'eingebaut' try { InputStreamReader isr = new InputStreamReader(System.in); BufferedReader in = new BufferedReader(isr);... } catch (IOException e) { }

9 © till.haenisch@gmx.de Syntax try { // some code } catch (SomeException e1) { // do something } catch (SomeException e2) { // do something else } finally { // always executed } später mehr

10 © till.haenisch@gmx.de Lesen aus Datei // Einlesen aus Datei BufferedReader in = new BufferedReader( new FileReader("x.dat")); String s = in.readLine(); // readLine() liefert am Dateiende null while (s != null) { System.out.println(s); s = in.readLine(); } AnwendungBufferedReaderFileReaderFile

11 © till.haenisch@gmx.de aus String // Einlesen aus String BufferedReader in = new BufferedReader( new StringReader("Hallo\nWelt\n)); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } AnwendungBufferedReaderStringReaderString

12 © till.haenisch@gmx.de aus dem Netz // Einlesen von URL URL U = new URL("http://192.168.1.110"); BufferedReader in = new BufferedReader( new InputStreamReader(U.openStream())); String s = in.readLine(); while (s != null) { System.out.println(s); s = in.readLine(); } AnwendungBufferedReaderInputStreamReaderURL

13 © till.haenisch@gmx.de Ausgabe in Datei // Ausgabe in Datei FileWriter fw = new FileWriter("y.dat")); PrintWriter pw = new PrintWriter(fw); pw.println("HALLO"); AnwendungPrintWriterFileWriterFile

14 © till.haenisch@gmx.de Ausgabe mal anders FileOutputStream os = new FileOutputStream("y.gz"); GZIPOutputStream zos = new GZIPOutputStream(os); PrintWriter pw = new PrintWriter(zos); pw.println("HALLO"); pw.close(); AnwendungPrintWriterGZIPOutputStreamFileOutputStreamFile

15 © till.haenisch@gmx.de Zusammenfassung EA in Java ist, verglichen mit anderen Sprachen im Sprachumfang enthalten (vgl. C) erheblich komplexer erheblich flexibler genauso effizient nicht nur für 'normale' Dateien, sondern auch etwa für Netzwerk Archive Datenbanken Überblick Literatur

16 © till.haenisch@gmx.de Praxis Programm "type" gibt Datei auf Konsole aus Erweiterung: seitenweise Programm "wc" Zählt die Zeilen in einer Datei Erweiterung: auch die Wörter und Buchstaben Programm "metric" Bestimmt die maximale/mittlere Schachtelungstiefe in einem Java Programm Programm "copy" kopiert Dateien (binär !) Programm "grep" durchsucht Dateien nach Muster (Zeichenfolge)


Herunterladen ppt "Ein-/ Ausgabe in Java ein Überblick. © eigentlich ganz einfach ? Ein-/Ausgabe durch package java.io Ausgabe (auf Konsole) mit System.out.println()"

Ähnliche Präsentationen


Google-Anzeigen