Class LineCommentsInputReader
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,java.lang.Readable
public class LineCommentsInputReader
extends java.io.Reader
Entfernt führenden und nachfolgenden Whitespace (Leerzeichen und Tabs) aus den gelesenen Zeilen.
Abgeleitet von "Reader", d.h., es kann überall dort verwendet werden (zwischengeschaltet werden), wo Daten aus einem Reader konsumiert werden, z.B. BufferedReader, Scanner, ...
Nicht thread-sicher - eine Instanz soll nur von einem Thread genutzt werden.
Anmerkungen: Verwendungszweck sind z.B. Eingabedateien von einfacher Syntax, aus denen Kommentare ausgefiltert werden sollen. Insbesondere nicht geeignet für komplexere Sprachen, bei denen die Kommentarzeichen innerhalb von Strings vorkommen können. Das erste Auftreten der als Kommentarzeichen definierten Zeichenkette wird als Beginn des Zeilenkommentars gewertet.
Für Eingangsdaten mit komplexerer Syntax gibt es im Standard-Java die Klasse StreamTokenizer. Deren Fähigkeiten gehen weit über die des LineCommentsInputReader hinaus. StreamTokenizer kann auch Kommentare im Stil von C und C++ ausfiltern und die Eingabe in lexikalische Tokens zerlegen, was der LineCommentsInputReader nicht leistet.
Dagegen kann der StreamTokenizer nicht wie der LineCommentsInputReader direkt mit aus mehreren Zeichen bestehenden Markierern für Zeilenkommentare umgehen und kann auch nicht als Reader-Instanz zwischengeschaltet werden.
- Author:
- reiser
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringDEFAULT_COMMENTDefault Line Comment String.static java.lang.StringNEWLINEEnd of Line String. -
Constructor Summary
Constructors Constructor Description LineCommentsInputReader(java.io.Reader in)Erzeugt einen LineCommentsInputReader mit Zeilenkommentar DEFAULT_COMMENT.LineCommentsInputReader(java.io.Reader in, java.lang.String comment)Erzeugt einen LineCommentsInputReader. -
Method Summary
-
Field Details
-
NEWLINE
public static final java.lang.String NEWLINEEnd of Line String. Same as System.getProperty("line.separator") -
DEFAULT_COMMENT
public static final java.lang.String DEFAULT_COMMENTDefault Line Comment String.- See Also:
- Constant Field Values
-
-
Constructor Details
-
LineCommentsInputReader
public LineCommentsInputReader(java.io.Reader in, java.lang.String comment)Erzeugt einen LineCommentsInputReader.- Parameters:
in- Reader, aus dem gelesen wird.comment- Zeichenfolge (nicht leer!), die einen Zeilenkommentar markiert.- Throws:
java.lang.IllegalArgumentException- wenn comment leer oder null ist.
-
LineCommentsInputReader
public LineCommentsInputReader(java.io.Reader in)Erzeugt einen LineCommentsInputReader mit Zeilenkommentar DEFAULT_COMMENT.- Parameters:
in- Reader, aus dem gelesen wird.
-
-
Method Details
-
read
public int read(java.nio.CharBuffer cb) throws java.io.IOException- Specified by:
readin interfacejava.lang.Readable- Overrides:
readin classjava.io.Reader- Throws:
java.io.IOException
-
read
public int read(char[] cbuf, int off, int len) throws java.io.IOException- Specified by:
readin classjava.io.Reader- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein classjava.io.Reader- Throws:
java.io.IOException
-
main
public static void main(java.lang.String[] args) throws java.io.IOException- Throws:
java.io.IOException
-
test
public static void test() throws java.io.IOException- Throws:
java.io.IOException
-