
- 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 unread(char[] cbuf) method
Description
The Java PushbackReader unread(char[] cbuf) method pushes back an array of characters by copying it to the front of the pushback buffer. After this method returns, the next character to be read will have the value cbuf[0], the character after that will have the value cbuf[1], and so forth.
unread(char[] cbuf) method −
Purpose − Pushes back the entire character array cbuf so they can be read again later.
Must ensure the pushback buffer size is at least as large as the array.
If buffer overflows, it throws IOException.
Declaration
Following is the declaration for java.io.PushbackReader.unread(char[] cbuf) method.
public void unread(char[] cbuf)
Parameters
cbuf − Character array to push back.
Return Value
This method does not return a value.
Exception
IOException − If there is insufficient room in the pushback buffer, or if some other I/O error occurs.
Example - Usage of PushbackReader unread(char[] cbuf) method
The following example shows the usage of PushbackReader unread(char[] cbuf) 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(); // create a new array to unread char cbuf[] = {'w', 'o', 'r', 'l', 'd'}; // unread into cbuf pr.unread(cbuf); // read five chars, which is what we unread from cbuf for (int i = 0; i < 5; i++) { char c = (char) pr.read(); System.out.print("" + c); } // 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 world
Example - Push back characters and read them again
The following example shows the usage of PushbackReader unread(char[] cbuf) 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"), 10)) { char[] charsToUnread = {'H', 'e', 'l', 'l', 'o'}; // Push back the characters "Hello" reader.unread(charsToUnread); // Now read them back char[] buffer = new char[5]; int read = reader.read(buffer); System.out.println("Read after unread: " + new String(buffer, 0, read)); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Read after unread: Hello
Explanation
"Java" is ignored because "Hello" is pushed back first.
The pushed-back chars are read before anything from the original stream.
Example - Combine reading and unreading
The following example shows the usage of PushbackReader unread(char[] cbuf) 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("PushBack"), 10)) { // Read first 4 characters: "Push" char[] buffer = new char[4]; reader.read(buffer); System.out.println("Initially read: " + new String(buffer)); // Push them back reader.unread(buffer); System.out.println("Unread the same characters"); // Read again char[] buffer2 = new char[4]; reader.read(buffer2); System.out.println("Read again after unread: " + new String(buffer2)); } catch (IOException e) { e.printStackTrace(); } } }
Output
Let us compile and run the above program, this will produce the following result−
Initially read: Push Unread the same characters Read again after unread: Push
Explanation
The first 4 characters are read, then pushed back using unread(char[]).
When read again, the same characters are retrieved.