バイトを先読みし、「<」でない場合はプッシュバックする場合は、次のように実行できます。
PushbackInputStream pbin=new PushbackInputStream(new FileInputStream("1.dat"));
int b = pbin.read();
if(b!='<')
pbin.unread(b);
しかし、DataInputStream から読み取った double をプッシュバックしたい場合は、どうすればよいでしょうか? 例えば:
PushbackInputStream pbin1=null;
DataInputStream din=new DataInputStream(
pbin1=new PushbackInputStream(
new FileInputStream("1.dat")
)
);
double d = din.readDouble();
pbin1.unread(d);
pbin1.unread(d);
PushbackInputStream は double をプッシュバックできないため、最後の行をコンパイルできません。