Einführung: Was ist denn nun ein Stream?
Auf unterster Ebene betrachtet man eine Datei einfach als eine Folge oder auch einen
Stream
von Bytes. Auf der Anwendungsebene hat man es nicht mit einzelnen Bytes, sondern mit einer
Folge von Datentypen bzw. Objekten zu tun. Auch diese kann man sich als einen Stream vorstellen,
sozusagen als
aneinandergehängte Objekte, wobei letztere auch verschiedenen Klassen angehören
können.
Diesen Stream von Bytes bzw. Objekten darf man sich dabei ruhig so anschaulich
vorstellen,
wie es durch die Begriffswahl suggeriert wird: daß nämlich die Objekte diesen Strom
entlangfließen. Dieses Bild wird komplettiert durch
die Wahl des Ein- bzw. Ausgabeoperators:
Zum Beispiel schreibt/schiebt
 <stream> >> x
die Daten aus dem Stream nach x
(also in Pfeilrichtung), während
 <stream> << x
die Daten von x
an den Stream ausgibt.
Der Stream <stream> kann dabei
sowohl für eine Ausgabe auf dem Bildschirm als auch für eine Ausgabe in eine Datei stehen
(hierfür gibt es zwei verschiedene Streamklassen, auf die wir noch zu sprechen kommen). Analoges gilt
für die Eingabe von Daten.