Java.io.LineNumberReader.mark() Method

Advertisements


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



Advertisements
Advertisements