[ Web Proxy ]
URL:
Viewing: https://www.tutorialspoint.com/java/io/java_io_pushbackreader.htm [Back]  [Original]

Java - PushbackReader class
Tutorials Courses Jobs Login
Selected Reading
Home Java/io Java - PushbackReader class

Java - PushbackReader class



Introduction

The Java PushbackReader class is a character-stream reader that allows characters to be pushed back into the stream.

Class declaration

Following is the declaration for Java.io.PushbackReader class

public class PushbackReader
   extends FilterReader

Field

Following are the fields for Java.io.PushbackReader class

  • protected Reader in This is the character-input stream.

  • protected Object lock This is the object used to synchronize operations on this stream.

Class constructors

Sr.No. Constructor & Description
1

PushbackReader(Reader in)

This creates a new pushback reader with a one-character pushback buffer.

2

PushbackReader(Reader in, int size)

This creates a new pushback reader with a pushback buffer of the given size.

Class methods

Sr.No. Method & Description
1 void close()

This method closes the stream and releases any system resources associated with it.

2 void mark(int readAheadLimit)

This method marks the present position in the stream.

3 boolean markSupported()

This method tells whether this stream supports the mark() operation, which it does not.

4 int read()

This method reads a single character.

5 int read(char[] cbuf, int off, int len)

This method reads characters into a portion of an array.

6 boolean ready()

This method tells whether this stream is ready to be read.

7 void reset()

This method resets the stream.

8 long skip(long n)

This method skips characters.

9 void unread(char[] cbuf)

This method pushes back an array of characters by copying it to the front of the pushback buffer.

10 void unread(char[] cbuf, int off, int len)

This method pushes back a portion of an array of characters by copying it to the front of the pushback buffer.

11 void unread(int c)

This method pushes back a single character by copying it to the front of the pushback buffer.

Methods inherited

This class inherits methods from the following classes

  • Java.io.Reader
  • Java.io.Object

Example - Properly closing a PushbackReader

The following example shows the usage of PushbackReader close() 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 reader = new PushbackReader(new StringReader("Hello, Java!"))) {
         int ch = reader.read();
         System.out.println("First character read: " + (char) ch); // Output: H

         // Push the character back
         reader.unread(ch);

         // Read it again
         System.out.println("After unread: " + (char) reader.read()); // Output: H

         // The reader will be automatically closed here due to try-with-resources
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

First character read: H
After unread: H

Explanation

  • Uses try-with-resources to ensure close() is automatically called at the end.

  • Proper resource handling without explicitly calling close().

Example - Directly calling mark() on PushbackReader

The following example shows the usage of PushbackReader markSupported() 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 reader = new PushbackReader(new StringReader("Hello, world!"))) {
         System.out.println("markSupported: " + reader.markSupported()); // false

         reader.mark(10); // This line will throw IOException
      } catch (IOException e) {
         System.out.println("Exception caught: " + e.getMessage());
      }
   }
}

Output

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

markSupported: false
Exception caught: mark/reset not supported

Example - Attempting Mark Without Checking markSupported()

The following example shows the usage of PushbackReader markSupported() 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 reader = new PushbackReader(new StringReader("World"))) {
         System.out.println("markSupported: " + reader.markSupported()); // false

         // Attempting to mark anyway  will throw IOException
         reader.mark(5); 
      } catch (IOException e) {
         System.out.println("Exception occurred: " + e.getMessage());
      }
   }
}

Output

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

markSupported: false  
Exception occurred: mark/reset not supported

Explanation

  • Shows how skipping markSupported() leads to an exception.

  • Demonstrates the importance of checking before calling mark().

Tutorix - AI Tutor [Tutorix - AI Tutor]
Print Page
Advertisements

Web Proxy Viewer  |  New URL  |  Original Page