2. Streams
2.1 Elementare Ein-/Ausgabe
Unter Unix-System werden die Console-Ein-/Ausgabekanäle Standard-In, Standard-Out und Standard-Error definiert. Diese sind auch in Java bekannt. Java stellt diese Standard-Kanäle in System.in, System.out, System.err zur Verfügung. Über sie können auf einfache Weise Tastatureingaben verarbeitet und Bildschirmausgaben dargestellt werden. Es sind Instanzen der zwei abstrakten Basisklassen InputStream und OutputStream.
2.2 Klassenhierarchie in java.io
Was sind Streams? Streams sind Objekte, über die Daten zeichenweise gelesen, bzw. geschrieben werden können. Die Herkunft, bzw. das Ziel der Daten kann prinzipiell beliebig festgelegt werden. So ist es z.B. möglich, einen Eingabestream mit einer Datei zu verbinden. Die Klasse FileInputStream tut genau dies.
Ich habe eben schon die Klassen InputStream und OutputStream angesprochen. Sie sind abstrakt - d.h., sie definieren nur die minimale Schnittstelle, die alle Streams haben müssen und besitzen keinen Code. Erst die von ihnen abgeleiteten Klassen definieren die abstrakten Methoden der Schnittstelle und verbinden sie mit Datenquellen bzw. -Senken.
Im Paket java.io werden einige Klassen definiert, z.B.:
Ein wichtiges Merkmal ist, daß Streams mit anderen Stream-Instanzen initialisiert werden können. Einen DataInputStream kann z.B. als Quelle ein FileInputStream übergeben werden, um Werte von Standard-Datentypen aus einer Datei zu lesen (siehe Beispiel).
2.3 Beispiele: