import java.io.FileReader;
import java.io.PushbackInputStream;
import java.io.PushbackReader;
public class PullbackTest {
public static void main(String[] args) {
try (PushbackReader pushbackReader = new PushbackReader(new FileReader("src/PullbackTest.java"), 64)) {
char[] buf = new char[32];
String lastReadContent = "";
int hasRead = 0;
while ((hasRead= pushbackReader.read(buf))>0){
String content = new String(buf,0,hasRead);
int targetIndex = 0;
if ((targetIndex = (lastReadContent+content).indexOf("new PushbackReader"))>0){
pushbackReader.unread((lastReadContent+content).toCharArray());
if (targetIndex >32){
buf = new char[targetIndex];
}
pushbackReader.read(buf,0,targetIndex);
System.out.println(new String(buf, 0, targetIndex));
System.exit(0);
}
else {
System.out.println(lastReadContent);
lastReadContent = content;
}
}
}catch (Exception e){
e.printStackTrace();
}
}
}