16.11.2013 Aufrufe

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

Programmieren in Java - HostFiXX.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Programmieren</strong> <strong>in</strong> <strong>Java</strong><br />

7.7.2 Die abstrakte Klassen Rea<strong>de</strong>r und ihre Ableitungen<br />

Basis aller sequentiellen E<strong>in</strong>gaben ist die abstrakte Klasse Rea<strong>de</strong>r, die e<strong>in</strong>e<br />

Schnittstelle für streambasierte E<strong>in</strong>gaben zur Verfügung stellt:<br />

public abstract class java.io.Rea<strong>de</strong>r<br />

{<br />

protected Rea<strong>de</strong>r();<br />

public abstract void close() throws IOException;<br />

// schliesst <strong>de</strong>n E<strong>in</strong>gabestrom<br />

public void mark(<strong>in</strong>t readAheadlimit) throws IOException;<br />

// markiert e<strong>in</strong>e bestimmte Position <strong>in</strong>nerhalb e<strong>in</strong>es E<strong>in</strong>gabestroms<br />

public boolean markSupported();<br />

// überprüft, ob Markieren unterstützt wird<br />

public <strong>in</strong>t read() throws IOException;<br />

// liest das nächste Zeichen aus <strong>de</strong>m E<strong>in</strong>gabestrom und liefert es als<br />

// "<strong>in</strong>t". Der Rückgabewert –1 kennzeichnet das En<strong>de</strong> <strong>de</strong>s E<strong>in</strong>gabestroms<br />

public <strong>in</strong>t read(char cbuf[]) throws IOException;<br />

// übernimmt e<strong>in</strong>e Reihe von Zeichen <strong>in</strong> <strong>de</strong>n als Parameter angegebenen<br />

// Array<br />

public abstract <strong>in</strong>t read(char cbuf[], <strong>in</strong>t off, <strong>in</strong>t len) throws IOException;<br />

// übernimmt e<strong>in</strong>e Reihe von zeichen <strong>in</strong> e<strong>in</strong>en Bereich <strong>de</strong>s Puffers, <strong>de</strong>r<br />

// durch Versatz (Offset) und die gewünschte Länge gekennzeichnet ist<br />

public long skip(long n) throws IOException;<br />

// überliest Zeichen im E<strong>in</strong>gabestrom<br />

public boolean ready() throws IOException;<br />

// liefert True, falls <strong>de</strong>r nächste Aufruf von read erfolgen kann, ohne<br />

// daß die E<strong>in</strong>gabe been<strong>de</strong>t ist<br />

public void reset() throws IOException;<br />

// setzt <strong>de</strong>n Lesezeiger an die markierte Stelle zurück<br />

}<br />

Von <strong>de</strong>r abstrakten Basisklasse Rea<strong>de</strong>r können ke<strong>in</strong>e Instanzen abgeleitet wer<strong>de</strong>n.<br />

Es gibt e<strong>in</strong>e Reihe aus Rea<strong>de</strong>r abgeleitete Klassen, die die Verb<strong>in</strong>dung zur<br />

konkreten E<strong>in</strong>gabe bzw. zum konkreten E<strong>in</strong>gabegerät herstellen.<br />

Klasse<br />

InputStreamRea<strong>de</strong>r<br />

FileRea<strong>de</strong>r<br />

PushbackRea<strong>de</strong>r<br />

BufferedRea<strong>de</strong>r<br />

L<strong>in</strong>eNumberRea<strong>de</strong>r<br />

Str<strong>in</strong>gRea<strong>de</strong>r<br />

CharArrayRea<strong>de</strong>r<br />

PipedRea<strong>de</strong>r<br />

Be<strong>de</strong>utung<br />

Abstrakte Klasse für alle Rea<strong>de</strong>r, die e<strong>in</strong>en Byte-<br />

Strom <strong>in</strong> e<strong>in</strong>en Character-Strom umwan<strong>de</strong>ln<br />

Konkrete Ableitung von InputStreamRea<strong>de</strong>r zum<br />

E<strong>in</strong>lesen e<strong>in</strong>er Datei<br />

E<strong>in</strong>gabefilter mit <strong>de</strong>r Möglichkeit zur Rückgabe<br />

von Zeichen<br />

Rea<strong>de</strong>r zur E<strong>in</strong>gabepufferung und zum Lesen<br />

kompletter Zeilen<br />

Ableitung von BufferedRea<strong>de</strong>r mit <strong>de</strong>r Fähigkeit<br />

zum Zählen von Zeilen<br />

Rea<strong>de</strong>r zum E<strong>in</strong>lesen von Zeichen aus e<strong>in</strong>em<br />

Str<strong>in</strong>g<br />

Rea<strong>de</strong>r zum E<strong>in</strong>lesen von Zeichen aus e<strong>in</strong>em<br />

Zeichen-Array<br />

Rea<strong>de</strong>r zum E<strong>in</strong>lesen von Zeichen aus e<strong>in</strong>em<br />

PipedWriter<br />

Abb.: Von Rea<strong>de</strong>r abgeleitete Klassen<br />

InputStreamRea<strong>de</strong>r<br />

Diese Klasse konvertiert Byte- <strong>in</strong> Character-Streams.<br />

484

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!