LineNumberReader (Java Platform SE 7 ) (original) (raw)
- java.io.Reader
- java.io.BufferedReader
- java.io.LineNumberReader
- java.io.BufferedReader
All Implemented Interfaces:
Closeable, AutoCloseable, Readable
public class LineNumberReader
extends BufferedReader
A buffered character-input stream that keeps track of line numbers. This class defines methods setLineNumber(int) and getLineNumber() for setting and getting the current line number respectively.
By default, line numbering begins at 0. This number increments at everyline terminator as the data is read, and can be changed with a call to setLineNumber(int). Note however, thatsetLineNumber(int) does not actually change the current position in the stream; it only changes the value that will be returned bygetLineNumber().
A line is considered to be terminated by any one of a line feed ('\n'), a carriage return ('\r'), or a carriage return followed immediately by a linefeed.
Since:
JDK1.1
Field Summary
* ### Fields inherited from class java.io.[Reader](../../java/io/Reader.html "class in java.io") `[lock](../../java/io/Reader.html#lock)`
Constructor Summary
Constructors
Constructor and Description LineNumberReader(Reader in) Create a new line-numbering reader, using the default input-buffer size. LineNumberReader(Reader in, int sz) Create a new line-numbering reader, reading characters into a buffer of the given size. Method Summary
Methods
Modifier and Type Method and Description int getLineNumber() Get the current line number. void mark(int readAheadLimit) Mark the present position in the stream. int read() Read a single character. int read(char[] cbuf, int off, int len) Read characters into a portion of an array. String readLine() Read a line of text. void reset() Reset the stream to the most recent mark. void setLineNumber(int lineNumber) Set the current line number. long skip(long n) Skip characters. * ### Methods inherited from class java.io.[BufferedReader](../../java/io/BufferedReader.html "class in java.io") `[close](../../java/io/BufferedReader.html#close%28%29), [markSupported](../../java/io/BufferedReader.html#markSupported%28%29), [ready](../../java/io/BufferedReader.html#ready%28%29)` * ### Methods inherited from class java.io.[Reader](../../java/io/Reader.html "class in java.io") `[read](../../java/io/Reader.html#read%28char[]%29), [read](../../java/io/Reader.html#read%28java.nio.CharBuffer%29)` * ### Methods inherited from class java.lang.[Object](../../java/lang/Object.html "class in java.lang") `[clone](../../java/lang/Object.html#clone%28%29), [equals](../../java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../java/lang/Object.html#finalize%28%29), [getClass](../../java/lang/Object.html#getClass%28%29), [hashCode](../../java/lang/Object.html#hashCode%28%29), [notify](../../java/lang/Object.html#notify%28%29), [notifyAll](../../java/lang/Object.html#notifyAll%28%29), [toString](../../java/lang/Object.html#toString%28%29), [wait](../../java/lang/Object.html#wait%28%29), [wait](../../java/lang/Object.html#wait%28long%29), [wait](../../java/lang/Object.html#wait%28long,%20int%29)`
Constructor Detail
* #### LineNumberReader public LineNumberReader([Reader](../../java/io/Reader.html "class in java.io") in) Create a new line-numbering reader, using the default input-buffer size. Parameters: `in` \- A Reader object to provide the underlying stream * #### LineNumberReader public LineNumberReader([Reader](../../java/io/Reader.html "class in java.io") in, int sz) Create a new line-numbering reader, reading characters into a buffer of the given size. Parameters: `in` \- A Reader object to provide the underlying stream `sz` \- An int specifying the size of the buffer
Method Detail
* #### setLineNumber public void setLineNumber(int lineNumber) Set the current line number. Parameters: `lineNumber` \- An int specifying the line number See Also: [getLineNumber()](../../java/io/LineNumberReader.html#getLineNumber%28%29) * #### getLineNumber public int getLineNumber() Get the current line number. Returns: The current line number See Also: [setLineNumber(int)](../../java/io/LineNumberReader.html#setLineNumber%28int%29) * #### read public int read() throws [IOException](../../java/io/IOException.html "class in java.io") Read a single character. [Line terminators](#lt) are compressed into single newline ('\\n') characters. Whenever a line terminator is read the current line number is incremented. **Overrides:** `[read](../../java/io/BufferedReader.html#read%28%29)` in class `[BufferedReader](../../java/io/BufferedReader.html "class in java.io")` Returns: The character read, or -1 if the end of the stream has been reached Throws: `[IOException](../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs * #### read public int read(char[] cbuf, int off, int len) throws [IOException](../../java/io/IOException.html "class in java.io") Read characters into a portion of an array. Whenever a [line terminator](#lt) is read the current line number is incremented. **Overrides:** `[read](../../java/io/BufferedReader.html#read%28char[],%20int,%20int%29)` in class `[BufferedReader](../../java/io/BufferedReader.html "class in java.io")` Parameters: `cbuf` \- Destination buffer `off` \- Offset at which to start storing characters `len` \- Maximum number of characters to read Returns: The number of bytes read, or -1 if the end of the stream has already been reached Throws: `[IOException](../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs * #### readLine public [String](../../java/lang/String.html "class in java.lang") readLine() throws [IOException](../../java/io/IOException.html "class in java.io") Read a line of text. Whenever a [line terminator](#lt) is read the current line number is incremented. **Overrides:** `[readLine](../../java/io/BufferedReader.html#readLine%28%29)` in class `[BufferedReader](../../java/io/BufferedReader.html "class in java.io")` Returns: A String containing the contents of the line, not including any [line termination characters](#lt), ornull if the end of the stream has been reached Throws: `[IOException](../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs See Also: [Files.readAllLines(java.nio.file.Path, java.nio.charset.Charset)](../../java/nio/file/Files.html#readAllLines%28java.nio.file.Path,%20java.nio.charset.Charset%29) * #### skip public long skip(long n) throws [IOException](../../java/io/IOException.html "class in java.io") Skip characters. **Overrides:** `[skip](../../java/io/BufferedReader.html#skip%28long%29)` in class `[BufferedReader](../../java/io/BufferedReader.html "class in java.io")` Parameters: `n` \- The number of characters to skip Returns: The number of characters actually skipped Throws: `[IOException](../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs `[IllegalArgumentException](../../java/lang/IllegalArgumentException.html "class in java.lang")` \- If n is negative * #### mark public void mark(int readAheadLimit) throws [IOException](../../java/io/IOException.html "class in java.io") Mark the present position in the stream. Subsequent calls to reset() will attempt to reposition the stream to this point, and will also reset the line number appropriately. **Overrides:** `[mark](../../java/io/BufferedReader.html#mark%28int%29)` in class `[BufferedReader](../../java/io/BufferedReader.html "class in java.io")` Parameters: `readAheadLimit` \- Limit on the number of characters that may be read while still preserving the mark. After reading this many characters, attempting to reset the stream may fail. Throws: `[IOException](../../java/io/IOException.html "class in java.io")` \- If an I/O error occurs * #### reset public void reset() throws [IOException](../../java/io/IOException.html "class in java.io") Reset the stream to the most recent mark. **Overrides:** `[reset](../../java/io/BufferedReader.html#reset%28%29)` in class `[BufferedReader](../../java/io/BufferedReader.html "class in java.io")` Throws: `[IOException](../../java/io/IOException.html "class in java.io")` \- If the stream has not been marked, or if the mark has been invalidated
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.