10.4 | Byte-, Character- und andere Streams |
In diesem Abschnitt wird ein kurzer Überblick über die einzelnen Streams gegeben, die im JDK enthalten sind. Hierbei werden sowohl die neuen Character-Streams des JDK 1.1 als auch die Byte-orientierten Streams des JDK 1.0 berücksichtigt. Für diejenigen, die schon über Programmiererfahrung mit dem JDK 1.0 verfügen, ist sicherlich die Korrespondenz der Streams des JDK 1.0 mit den Streams des JDK 1.1 interessant. Denn wie oben schon erwähnt, gibt es in der Funktionalität keine großen Unterschiede. Was sich geändert hat, ist nur der Datentyp, auf dem die Streams operieren. Die Methoden sind zum größten Teil identisch.
Die Beispiele in den nächsten Abschnitten werden jeweils mit den Character-Streams des JDK 1.1 durchgeführt, soweit dies möglich ist. Die Verwendung des korrespondierenden Byte-Streams erfolgt in den meisten Fällen genauso. Bei Unterschieden wird gegebenenfalls darauf hingewiesen.
Tabelle 10.2: Character-Streams und Byte-Streams zur Eingabe Character-Stream Byte-Stream Reader InputStream InputStreamReader BufferedReader BufferedInputStream LineNumberReader CharArrayReader ByteArrayInputStream FileReader FileInputStream FilterReader FilterInputStream PushbackReader PushbackInputStream PipedReader PipedInputStream StringReader StringBufferInputStream
Tabelle 10.3: Character-Streams und Byte-Streams zur Ausgabe Character-Stream Byte-Stream Writer OutputStream OutputStreamWriter BufferedWriter BufferedOutputStream CharArrayWriter ByteArrayOutputStream FileWriter FileOutputStream FilterWriter FilterOutputStream PipedWriter PipedOutputStream StringWriter StringWriter Neben den in den Tabellen 10.2 und 10.3 gegenübergestellten Character- und Byte-Streams enthält das JDK noch einige wenige andere Streams, die nicht direkt zur Textverarbeitung verwendet werden.
Dazu gehören:
- DataInputStream und DataOutputStream
sind für die Verarbeitung von unterschiedlichen Datentypen geeignet.- ObjectInputStream und ObjectOutputStream
ermöglichen es, beliebige Objekt über Streams einzulesen bzw. auszugeben. Dies geschieht über den Vorgang der Objektserialisierung.- SequenceInputStream und SequenceOutputStream
werden für die sequenzielle Bearbeitung mehrerer Streams verwendet.