22.2 Die
Klassen DataInputStream und DataOutputStream |
|
Komfortableres
Auslesen eines InpuStreams
Download: |
Will man
mit den bisher kennen gelernten Mitteln einen Satz aus einer
Eingabe-Pipeline auslesen, müssen wir schon einen größeren Aufwand
treiben:
|
Wieder
blockiert die read()-Methode das Javaprogramm bis die Eingabe in die
Eingabe-Pipeline abgeschlossen ist. Da es sich um einen Satz handelt gibt
man vor dem Drücken der Eingabetaste noch den Punkt als Schlusssatzzeichen
ein. Danach lest read() aus der Pipeline 1 Byte große Blöcke, liefert an
das Programm diese Werte als
int
interpretiert, die nach einem expliziten Cast in ein
char-Variablen
abgelegt werden. Mit ihnen wird dann der String
satz
aufgebaut. Die Ausgabe ist dann einfach, da wir die Variante
println(String text)
benutzen, die einen ganzen String in die Ausgabe-Pipeline einspeist, der
vom System wieder in 1 Byte große Pakete ausgelesen als ASCII-Code
interpretiert und schließlich als Zeichen auf den Bildschirm ausgegeben
wird. |
|
Eine
elegantere Art für das Einlesen steht uns mit der Klasse DataInputStream
zur Verfügung. Für Ausgabeströme steht in der Klasse DataOutputStream eine
Entsprechung zur Verfügung. |
|
![]() |
|
Objekte dieser neuen Ströme funktionieren so, dass man ihnen die Objekte System.out bzw. System.in übergibt. Die Klassen DataInputStream und DataOutputStream stellt ihren Objekten komfortablere Methoden zur Verfügung. | |
Download: Lies4.java |
|
Die
Methode readLine()
der Klasse DataInputStream
ist in ihrer Funktionalität der
read()-Methode der Klasse
InputStream
nachgebaut, liest aber den kompletten Inhalt aus der Eingabe-Pipeline und
liefert ihn als ein String-Objekt an das aufrufende Javaprogramm.. |
|
Java ist
toll. Java ist toll. |
|
Wieder
rührt der erste Satz vom Echo des Systems her, während der zweite aus dem
von Java gefüllten Ausgabestrom stammt. |
|
Analog
könnte man auch den Ausgabestrom organisieren: |
|
Download: Lies5.java |
|
Die
Methode, die ein String-Objekt in den Ausgabestrom
ausgabe
ist writeByte(String text). Das Wort Byte im Methodennamen unterstreicht,
dass das Auslesen aus dem Ausgabestrom in 1 Byte großen Blöcken geschieht.
DDie Methode close()schließt
den Ausgabestrom und gibt ihn frei, so dass das Rechnersystem die Daten
aus der Ausgabe-Pipeline auslesen und auf dem Bildschirm darstellen kann. |
|
zu | 22.3 Schreiben in eine Datei und Lesen aus einer Datei |
zur Startseite | www.pohlig.de (C) MPohlig 2003 |