Java Reference
In-Depth Information
Sie finden den kompletten Quellcode des Programms unter dem Namen
Verzeichnis-
inhalt_mit_FileChooser
auf der beiliegenden DVD im Ordner
Arbeitsumgebung\Java\
Programme\JavaUebung12
.
12.2
Ein- und Ausgaben aus der Sicht von Java
In Java bildet der
Stream
(Datenstrom) die Grundlage für jede Ein- und Ausgabe. Jede
Ein- und Ausgabe kann als Kommunikation oder Datenfluss zwischen einem Sender
und Empfänger aufgefasst werden. In den bisher von Ihnen erstellten Programmen fan-
den solche Datenströme von der Tastatur zum Programm und vom Programm zum
Bildschirm statt. Im Package
System.io
sind alle Klassen für die Dateiverarbeitung
zusammengefasst. Sie haben dieses Package bereits intensiv genutzt, indem Sie haupt-
sächlich den Standardeingabestrom
System.out
für die Ausgaben an der Konsole ver-
wendet haben. Neben diesem Standardausgabestrom, der standardmäßig auf den
Bildschirm schreibt, sind dort auch der Standardeingabestrom
System.in
und der Stan-
dardfehlerausgabestrom
System.err
definiert.
System.in
verfügt über Methoden zum
Einlesen von Tastatureingaben und
System.err
stellt Methoden für die Ausgabe von
Fehlermeldungen zur Verfügung. Die Fehlermeldungen werden standardmäßig eben-
falls auf dem Bildschirm bzw. der Konsole ausgegeben. Die Ausgabeströme
System.out
und
System.err
sind beide vom Typ
PrintStream
, während der Eingabestrom
System.in
vom Typ ein
InputStream
ist. Damit diese bereits verwendeten Streams richtig eingeord-
net werden können, folgen einige allgemeine Erläuterungen zu Datenströmen.
12
12.2.1 Ein- und Ausgabeströme
Ein- und Ausgabeströme können nach verschiedenen Kriterien unterschieden werden.
Die wichtigste Unterscheidung betrifft die Dateneinheit, die bei der Übertragung von
Daten verwendet wird. In Java werden
byteorientierte
und
zeichenorientierte
Streams
unterschieden (
Abbildung 12.4
). Ursprünglich gab es in Java nur byteorientierte
Streams. Das Byte ist die kleinste direkt zugreifbare Informationseinheit und bietet sich
deshalb als Einheit für die Datenübertragung an, weil sich jeder Datenbestand unabhän-
gig davon, ob es sich um Text, Bilder, Videos, Programmdaten oder andere Informatio-
nen handelt, als Folge von Bytes darstellen lässt. Da in Java Zeichen im Unicode
vorliegen und damit ein Zeichen aus jeweils zwei Bytes besteht, bot es sich an, für die
Übertragung von Zeichenfolgen spezialisierte Datenströme zur Verfügung zu stellen.
Das sehr häufig benötigte Lesen und Schreiben von Textdaten wird damit wesentlich
vereinfacht.