
- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
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.