Java.io.LineNumberReader.mark() Method
Description
The java.io.LineNumberReader.mark(int readAheadLimit) method 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 approximately.
Declaration
Following is the declaration for java.io.LineNumberReader.mark(int readAheadLimit) method:
public void mark(int readAheadLimit)
Parameters
readAheadLimit -- limit on the number of characters that may be read while still preserving the mark.
Return Value
The method does not return any value.
Exception
IOException -- If an I/O error occurs
Example
The following example shows the usage of java.io.LineNumberReader.mark(int readAheadLimit) method.
package com.tutorialspoint;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class LineNumberReaderDemo {
public static void main(String[] args) throws IOException {
FileReader fr = null;
LineNumberReader lnr = null;
int i;
try{
// create new reader
fr = new FileReader("C:/test.txt");
lnr = new LineNumberReader(fr);
// reads and prints data from reader
System.out.println((char)lnr.read());
System.out.println((char)lnr.read());
// mark invoked at this position
lnr.mark(0);
System.out.println("mark() invoked");
System.out.println((char)lnr.read());
System.out.println((char)lnr.read());
// if this reader supports mark() an reset()
if(lnr.markSupported())
{
// reset() repositioned the reader to the mark
lnr.reset();
System.out.println("reset() invoked");
System.out.println((char)lnr.read());
System.out.println((char)lnr.read());
}
}catch(Exception e){
// if any error occurs
e.printStackTrace();
}finally{
// closes the stream and releases system resources
if(fr!=null)
fr.close();
if(lnr!=null)
lnr.close();
}
}
}
Assuming we have a text file c:/test.txt, which has the following content. This file will be used as an input for our example program:
ABCDE
Let us compile and run the above program, this will produce the following result:
A B mark() invoked C D reset() invoked C D