Java - PushbackReader reset() method



Description

The Java PushbackReader reset() method resets the stream. The reset method of PushbackReader always throws an exception.

Declaration

Following is the declaration for java.io.PushbackReader.reset() method.

public void reset()

Parameters

NA

Return Value

This method does not return a value.

Exception

IOException − If an I/O error occurs.

Example - Usage of PushbackReader reset() method

The following example shows the usage of PushbackReader reset() method.

PushbackReaderDemo.java

package com.tutorialspoint;

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

public class PushbackReaderDemo {
   public static void main(String[] args) {

   
      try {
         String s = "Hello World";

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

         // create a new PushBack reader based on our string reader
         PushbackReader pr = new PushbackReader(sr, 20);

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

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

         // try to reset and get an exception because it is not supported
         pr.reset();

         // close the stream
         pr.close();

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

Output

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

Hello
java.io.IOException: mark/reset not supported

Example - reset() on PushbackReader throws exception

The following example shows the usage of PushbackReader reset() method.

PushbackReaderDemo.java

package com.tutorialspoint;

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

public class PushbackReaderDemo {
   public static void main(String[] args) {
      try (PushbackReader pushbackReader = new PushbackReader(new StringReader("Example"))) {

         // Try reading one character
         int ch = pushbackReader.read();
         System.out.println("Read character: " + (char) ch);

         // Try calling reset()
         System.out.println("Calling reset()...");
         pushbackReader.reset();  // This will throw an IOException

      } catch (IOException e) {
         System.out.println("Caught IOException: " + e.getMessage());
      }
   }
}

Output

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

Read character: E  
Calling reset()...  
Caught IOException: mark/reset not supported

Explanation

  • PushbackReader inherits the default implementation of reset() from Reader, which throws an IOException by default unless overridden.

  • Since PushbackReader does not override it to provide support, calling reset() causes: java.io.IOException: mark/reset not supported.

Example - reset() on PushbackReader throws exception

The following example shows the usage of PushbackReader reset() method.

PushbackReaderDemo.java

package com.tutorialspoint;

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

public class PushbackReaderDemo {
   public static void main(String[] args) {
      try (PushbackReader pushbackReader = new PushbackReader(new StringReader("Example"))) {

         // Try reading one character
         int ch = pushbackReader.read();
         System.out.println("Read character: " + (char) ch);

         // Try calling reset()
         System.out.println("Calling reset()...");
         pushbackReader.reset();  // This will throw an IOException

      } catch (IOException e) {
         System.out.println("Caught IOException: " + e.getMessage());
      }
   }
}

Output

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

Read character: E  
Calling reset()...  
Caught IOException: mark/reset not supported

Explanation

  • PushbackReader inherits the default implementation of reset() from Reader, which throws an IOException by default unless overridden.

  • Since PushbackReader does not override it to provide support, calling reset() causes: java.io.IOException: mark/reset not supported.

java_io_pushbackreader.htm
Advertisements