推回与向前窥视的选项有关,并且测试某些条件是真还是假。如果为 false,您希望继续前进,就好像您没有提前达到峰值一样,因此您必须将流向后推,就像您往前看一样。否则,您可以更换前面的峰值部分并从那里继续。
[参见] http://tutorials.jenkov.com/java-io/pushbackinputstream.html
[或] http://www.java-samples.com/showtutorial.php?tutorialid=390
[或] 书:“Herbert Schildt 的完整参考资料第 2 部分”。
PushbackInputStream 旨在用于解析来自 InputStream 的数据。有时您需要提前读取几个字节以查看即将发生的内容,然后才能确定如何解释当前字节。PushbackInputStream 允许您这样做。好吧,实际上它允许您将读取的字节推回流中。下次调用 read() 时将再次读取这些字节。——延科夫——
int c;
while ((c = f.read()) != -1) {
switch(c) {
case '=':
if ((c = f.read()) == '=') {
System.out.print(".eq.");
} else {
System.out.print("<-");
f.unread(c);
}
}
这样,您就可以留在阅读的流程中。
注意:PushbackInputStream 具有使用于创建它的 InputStream 的 mark( ) 或 reset( ) 方法无效的副作用。使用 markSupported( ) 检查您将使用 mark( )/reset( ) 的任何流。--www.java-samples.com--