Java.io.StringReader.mark() Method



Description

The java.io.StringReader.mark(int readAheadLimit) method marks the present position in the stream. Subsequent calls to reset() will reposition the stream to this point.

Declaration

Following is the declaration for java.io.StringReader.mark() method.

public void mark(int readAheadLimit)

Parameters

readAheadLimit − Limit on the number of characters that may be read while still preserving the mark. Because the stream's input comes from a string, there is no actual limit, so this argument must not be negative, but is otherwise ignored.

Return Value

This method does not return a value.

Exception

  • IllegalArgumentException − If readAheadLimit is < 0.

  • IOException − If an I/O error occurs.

Example

The following example shows the usage of java.io.StringReader.mark() method.

package com.tutorialspoint;

import java.io.*;

public class StringReaderDemo {
   public static void main(String[] args) {
      String s = "Hello World";

      // create a new StringReader
      StringReader sr = new StringReader(s);

      try {
         // read the first five chars
         for (int i = 0; i < 5; i++) {
            char c = (char) sr.read();
            System.out.print("" + c);
         }

         // mark the reader at position 5 for maximum 6
         sr.mark(6);

         // read the next six chars
         for (int i = 0; i < 6; i++) {
            char c = (char) sr.read();
            System.out.print("" + c);
         }

         // reset back to marked position
         sr.reset();

         // read again the next six chars
         for (int i = 0; i < 6; i++) {
            char c = (char) sr.read();
            System.out.print("" + c);
         }

         // close the stream
         sr.close();

      } catch (IOException ex) {
         ex.printStackTrace();
      }
   }
}

Let us compile and run the above program, this will produce the following result −

Hello World World
java_io_stringreader.htm
Advertisements