Java - StringReader markSupported() method



Description

The Java StringReader markSupported() method tells whether this stream supports the mark() operation, which it does.

Declaration

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

public boolean markSupported()

Parameters

NA

Return Value

This method returns true if and only if this stream supports the mark operation.

Exception

NA

Example - Usage of StringReader markSupported() method

The following example shows the usage of StringReader markSupported() method.

StringReaderDemo.java

package com.tutorialspoint;

import java.io.IOException;
import java.io.StringReader;

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);
         }

         // change line
         System.out.println();

         // print if mark is supported
         System.out.println("" + sr.markSupported());

         // close the stream
         sr.close();

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

Output

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

Hello
true

Example - Checking if mark() is supported

The following example shows the usage of StringReader markSupported() method.

StringReaderDemo.java

package com.tutorialspoint;

import java.io.StringReader;

public class StringReaderDemo {
   public static void main(String[] args) {
      StringReader reader = new StringReader("Hello, world!");

      System.out.println("Mark supported? " + reader.markSupported());

      reader.close();
   }
}

Output

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

Mark supported? true

Explanation

  • This example simply checks if the StringReader supports marking (it does).

  • You can safely use mark() and reset() on this reader.

Example - Using markSupported() before using mark() and reset()

The following example shows the usage of StringReader markSupported() method.

StringReaderDemo.java

package com.tutorialspoint;

import java.io.StringReader;

public class StringReaderDemo {
   public static void main(String[] args) throws Exception {
      StringReader reader = new StringReader("abcdef");

      if (reader.markSupported()) {
         reader.read(); // read 'a'
         reader.mark(10); // mark position after 'a'

         char b = (char) reader.read(); // 'b'
         char c = (char) reader.read(); // 'c'

         reader.reset(); // go back to after 'a'
         char b2 = (char) reader.read(); // should be 'b' again

         System.out.println("Read after reset: " + b2);
      } else {
         System.out.println("Mark not supported.");
      }

      reader.close();
   }
}

Output

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

Read after reset: b

Explanation

  • We use markSupported() to check if marking is safe.

  • After marking and reading 'b' and 'c', we reset and read 'b' again.

  • This confirms that marking and resetting work correctly in StringReader.

java_io_stringreader.htm
Advertisements