PushbackInputStream

In this chapter you will learn:

  1. How to use PushbackInputStream

Use PushbackInputStream

PushbackInputStream allows a byte to be read and then returned to the stream. PushbackInputStream peeks what is coming from an input stream without disrupting it.

PushbackInputStream has the following constructors:

  • PushbackInputStream(InputStream inputStream)
    creates a stream object that allows one byte to be returned to the input stream.
  • PushbackInputStream(InputStream inputStream, int numBytes)
    creates a stream that has a pushback buffer that is numBytes long.

PushbackInputStream provides unread( ) method:

  • void unread(int ch)
    pushes back the low-order byte of ch. This will be the next byte returned by a subsequent call to read( ).
  • void unread(byte buffer[ ])
    returns the bytes in buffer.
  • void unread(byte buffer, int offset, int numChars)
    pushes back numChars bytes beginning at offset from buffer.
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.PushbackInputStream;
//from jav a2  s  .co m
public class Main {
  public static void main(String args[]) throws IOException {
    byte buf[] = "==  = ".getBytes();
    PushbackInputStream f = new PushbackInputStream(new ByteArrayInputStream(buf));
    int c;
    while ((c = f.read()) != -1) {
      switch (c) {
      case '=':
        c = f.read();
        if (c == '=')
          System.out.print(".eq.");
        else {
          System.out.print("=");
          f.unread(c);
        }
        break;
      default:
        System.out.print((char) c);
        break;
      }
    }
  }
}

Next chapter...

What you will learn in the next chapter:

  1. How to use ByteArrayInputStream
  2. Mark and reset positions in ByteArrayInputStream
Home » Java Tutorial » Reader Writer
Stream vs Reader and writer
InputStream
FileInputStream
ObjectInputStream
DataInputStream
BufferedInputStream
SequenceInputStream
PushbackInputStream
ByteArrayInputStream
PrintStream
OutputStream
FileOutputStream
DataOutputStream
ObjectOutputStream
BufferedOutputStream
ByteArrayOutputStream
FilterOutputStream
Reader
FileReader
BufferedReader
CharArrayReader
StringReader
LineNumberReader
InputStreamReader
PushbackReader
Writer
FileWriter
BufferedWriter
CharArrayWriter
StringWriter
PrintWriter
OutputStreamWriter