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.String
DEFAULT_COMMENT
Default Line Comment String.static java.lang.String
NEWLINE
End 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:
read
in interfacejava.lang.Readable
- Overrides:
read
in classjava.io.Reader
- Throws:
java.io.IOException
-
read
public int read(char[] cbuf, int off, int len) throws java.io.IOException- Specified by:
read
in classjava.io.Reader
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in 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
-