File Stream Java Book

The PushbackReader class allows one or more characters to be returned to the input stream. This allows you to peek in the input stream.
Here are its two constructors:
PushbackReader(Reader inputStream)
creates a buffered stream that allows one character to be pushed back.
PushbackReader(Reader inputStream, int bufSize)
the size of the pushback buffer is passed in bufSize.
PushbackReader unread( ) method returns one or more characters to the input stream.
It has the three forms shown here:
void unread(int ch)
pushes back the character ch. ch will be the character returned by a subsequent call to read( ).
void unread(char buffer[ ])
push back the characters in buffer.
void unread(char buffer[ ], int offset, int numChars)
pushes back numChars characters beginning at offset from buffer.

import java.io.CharArrayReader;
import java.io.IOException;
import java.io.PushbackReader;
public class Main {
public static void main(String args[]) throws IOException {
String s = "== =";
char buf[] = new char[s.length()];
for(int i=0;i buf[i] = s.charAt(i);
}
CharArrayReader in = new CharArrayReader(buf);
PushbackReader f = new PushbackReader(in);
int c;
while ((c = f.read()) != -1) {
if(65535 == c){
break;
}
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;
}
}
}
}