Java.io.LineNumberReader class in Java Last Updated : 12 Sep, 2023 Comments Improve Suggest changes Like Article Like Report 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 every line terminator as the data is read, and can be changed with a call to setLineNumber(int). Note however, that setLineNumber(int) does not actually change the current position in the stream; it only changes the value that will be returned by getLineNumber(). 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. Constructors : 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. Methods : int getLineNumber() : Get the current line number. Syntax :public int getLineNumber() Returns: The current line number void mark(int readAheadLimit) : 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. Syntax :public void mark(int readAheadLimit) throws IOException 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 int read() : Read a single character.Line terminators are compressed into single newline ('\n') characters. Whenever a line terminator is read the current line number is incremented. Syntax :public int read() throws IOException Returns: The character read, or -1 if the end of the stream has been reached Throws: IOException int read(char[] cbuf, int off, int len) : Read characters into a portion of an array.Whenever a line terminator is read the current line number is incremented. Syntax :public int read(char[] cbuf, int off, int len) throws IOException 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 String readLine() : Read a line of text.Whenever a line terminator is read the current line number is incremented. Syntax :public String readLine() throws IOException Returns: A String containing the contents of the line, not including any line termination characters, or null if the end of the stream has been reached Throws: IOException void reset() : Reset the stream to the most recent mark. Syntax :public void reset() throws IOException Throws: IOException void setLineNumber(int lineNumber) : Set the current line number. Syntax :public void setLineNumber(int lineNumber) Parameters: lineNumber - An int specifying the line number long skip(long n) : Skip characters. Syntax :public long skip(long n) throws IOException Parameters: n - The number of characters to skip Returns: The number of characters actually skipped Throws: IOException IllegalArgumentException Program : Java //Java program demonstrating LineNumberReader methods import java.io.FileReader; import java.io.IOException; import java.io.LineNumberReader; class LineNumberReaderDemo { public static void main(String[] args) throws IOException { FileReader fr = new FileReader("file.txt"); LineNumberReader lnr = new LineNumberReader(fr); char c[] = new char[20]; //illustrating setLineNumber() lnr.setLineNumber(0); //illustrating set System.out.println(lnr.getLineNumber()); //illustrating markSupported() method if(lnr.markSupported()) { System.out.println("mark() method is supported"); //illustrating mark method lnr.mark(100); } /*File Contents * This is first line this is second line This is third line */ //skipping 19 characters lnr.skip(19); //illustrating ready() method if(lnr.ready()) { //illustrating readLine() method System.out.println(lnr.readLine()); //illustrating read(char c[],int off,int len) lnr.read(c); for (int i = 0; i <20 ; i++) { System.out.print(c[i]); } //illustrating reset() method lnr.reset(); for (int i = 0; i <18 ; i++) { //illustrating read() method System.out.print((char)lnr.read()); } int ch; //illustrating read() method System.out.println(lnr.readLine()); while((ch = lnr.read())==1) System.out.print((char)ch); } //close the stream lnr.close(); } } Output : 0 mark() method is supported this is second line This is third line This is first line Comment More infoAdvertise with us Next Article Java.io.LineNumberReader class in Java N Nishant Sharma Improve Article Tags : Java Practice Tags : Java Similar Reads Java.io.LineNumberInputStream Class in Java java.io.LineNumberInputStream class is simply an extension of input stream providing a extra facility to keep the record of current line number. Line is a sequence of bytes ending with : '\r' i.e. a carriage return character or a newline character : '\n', or a linefeed character following the carria 11 min read Java.io.StringReader class in Java StringReader class in Java is a character stream class whose source is a string. It inherits Reader Class. Closing the StringReader is not necessary, it is because system resources like network sockets and files are not used. Let us check more points about StringReader Class in Java. Declare StringR 4 min read Java.io.ObjectInputStream Class in Java | Set 1 ObjectInputStream Class deserializes the primitive data and objects previously written by ObjectOutputStream. Both ObjectOutputStream and ObjectInputStream are used as it provides storage for graphs of object.It ensures that the object it is working for, matches the classes of JVM i.e Java Virtual M 9 min read Java.io.ObjectInputStream Class in Java | Set 2 Java.io.ObjectInputStream Class in Java | Set 1 Note : Java codes mentioned in this article won't run on Online IDE as the file used in the code doesn't exists online. So, to verify the working of the codes, you can copy them to your System and can run it over there. More Methods of ObjectInputStrea 6 min read Java.io.PrintWriter class in Java | Set 1 Java PrintWriter class gives Prints formatted representations of objects to a text-output stream. It implements all of the print methods found in PrintStream. It does not contain methods for writing raw bytes, for which a program should use unencoded byte streams. Unlike the PrintStream class, if au 5 min read Java.io.StreamTokenizer Class in Java | Set 2 StringTokenizer Class in Java | Set 1 Methods: parseNumbers() : java.io.StreamTokenizer.parseNumbers() specifies that the number in StreamTokenizer is parsed, so that each character - " 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 " has a numeric attribute. When the parser encounters a word token that has the forma 8 min read Java.io.StreamTokenizer Class in Java | Set 1 In Java, the StreamTokenizer class is present in the java.io package. It is used to parse an input stream by breaking it into small chunks known as tokens, these tokens make the processing easier. A token can be a word, a number, or any specific symbol. Stream Tokenizer can recognize numbers, quoted 12 min read Java.io.ObjectOutputStream Class in Java | Set 1 An ObjectOutputStream writes primitive data types and graphs of Java objects to an OutputStream. The objects can be read (reconstituted) using an ObjectInputStream. Persistent storage of objects can be accomplished by using a file for the stream. Only objects that support the java.io.Serializable in 9 min read java.lang.management.ThreadInfo Class in Java java.lang.management.ThreadInfo class contains methods to get information about a thread. This information includes: Thread IDThread NameState of the ThreadStack trace of the ThreadThe object upon which the Thread is blockedList of object monitors that are blocked by the ThreadList of ownable synchr 4 min read java.lang.reflect.Field Class in Java The ability of the software to analyze itself is known as Reflection. This is provided by the java.lang.reflect package and elements in Class .Field serves the same purpose as the whole reflection mechanism, analyze a software component and describe its capabilities dynamically, at run time rather t 5 min read Like