PushbackInputStream добавляет функциональность к входному потоку, позволяя нам отталкивать прочитанные байты, используя его метод unread().
Существует три версии метода unread(). Один позволяет нам отодвигать один байт, а два других позволяют отодвигать несколько байтов.
Пример
import java.io.FileInputStream; import java.io.PushbackInputStream; /*from www .jav a 2 s .c o m*/ public class Main { public static void main(String[] args) { String srcFile = "test.txt"; try (PushbackInputStream pis = new PushbackInputStream(new FileInputStream( srcFile))) { byte byteData; while ((byteData = (byte) pis.read()) != -1) { System.out.print((char) byteData); pis.unread(byteData); // Reread the byte we unread byteData = (byte) pis.read(); System.out.print((char) byteData); } } catch (Exception e2) { e2.printStackTrace(); } } }
Приведенный выше код генерирует следующий результат.
wwwwwww..jjaavvaa22ss,,ccoomm AAPPII AAppppeennddeedd