Grundsätzlich sind Byte-Stream-Klassen und Character-Stream-Klassen zu unterscheiden. Obwohl die Ein- und Ausgabe auf der untersten Ebene byteorientiert gehandhabt wird, werden wir in den folgenden Beispielen ausschließlich die zeichenorientierte Eingabe mit Hilfe der Character-Stream-Klassen besprechen.
Für die Eingabe muss ein so genanntes ``Package'' geladen werden, das alle Klassen und Methoden für die Ein- und Ausgabe enthält. Dies geschieht mit dem import - Befehl zu Beginn des Programmcodes.