Java - PushbackReader read() method



Description

The Java PushbackReader read() method reads a single character.

read() method −

  • Reads a single character from the stream.

  • Returns the character read, as an int, or -1 if the end of the stream is reached.

  • Can be followed by unread(int c) to push the character back.

Declaration

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

public int read()

Parameters

NA

Return Value

This method returns the character read, or -1 if the end of the stream has been reached.

Exception

IOException − If an I/O error occurs.

Example - Usage of PushbackReader read() method

The following example shows the usage of PushbackReader read() 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) {
      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);
      
      try {
         // 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();

         // 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

Example - Reading characters one by one

The following example shows the usage of PushbackReader read() 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("ABC"))) {
         int ch;
         while ((ch = reader.read()) != -1) {
            System.out.println("Read character: " + (char) ch);
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

Read character: A  
Read character: B  
Read character: C

Explanation

  • Reads one character at a time until end-of-stream (-1) is reached.

  • Converts the returned int to char before printing.

Example - Using read() and unread() together

The following example shows the usage of PushbackReader read() 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("Java"))) {
         int ch1 = reader.read();
         System.out.println("First read: " + (char) ch1); // J

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

         // Read it again
         int ch2 = reader.read();
         System.out.println("After unread, read again: " + (char) ch2); // J
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

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

First read: J  
After unread, read again: J

Explanation

  • Reads a character (J) and then "unreads" it (pushes it back).

  • The next read() reads the same character again.

java_io_pushbackreader.htm
Advertisements