Топ-100PushbackInputStream в Java - CodOrbits
LogoCodOrbits

Раздел: Потоки ввода/вывода

Раздел о том, как работать с файлами и потоками в Java: чтение, запись, буферизация и сериализация данных.

Все разделы
Иконка Потоки ввода/вывода

PushbackInputStream в Java

Last updated: 6 мая 2025 г.

PushbackInputStream – прочитав несколько байтов входного потока с помощью inpsrream.read() бывает необходимо вернуться и прочитать эти же уже прочитанные ранее байты еще раз.

Делается с помощью inpsrteam.unread().

Пример программы:

1import java.io.*;
2import java.util.*;
3
4class PushbackStream {
5    public static void main(String[] args) {
6        try {
7            String str = "Hello world!!!";
8            byte b[] = str.getBytes();
9            ByteArrayInputStream bin = new ByteArrayInputStream(b);
10            PushbackInputStream push = new PushbackInputStream(bin);
11            
12            // читаем первый символ
13            System.out.print((char)push.read());
14            
15            // Возвращаем его обратно.
16            // То есть сейчас мы извлекли первый элемент ‘H’ из str
17            // и если мы вызовем System.out.print((char)push.read());
18            // еще раз, то извлечется уже второй ‘e’. А мы хотим
19            // опять прочитать первый. Для этого мы можем
20            // вставить его перед ‘e’ и прочитать его еще
21            // раз вместо ‘e’. На самом деле нам не обязательно
22            // вставлять именно ‘H’ можно вставить любой символ.
23            // Важная ремарка, что сама строка str
24            // при всех этих манипуляциях не изменяется.
25            push.unread(H);
26            
27            // читаем снова первый возвращенный символ
28            System.out.print((char)push.read());
29            
30            // дальше будет читать со второго символа
31            System.out.print((char)push.read());
32            System.out.print((char)push.read());
33            System.out.print((char)push.read());
34        } catch (Exception e) {}
35    }
36}

Вывод:

Как видим, мы прочитали первый символ два раза. То есть мы прочитали его, потом вернули и прочитали его еще раз.


Следующие уроки

OutputStreamWriter в Java

8
мин.

Similar Articles Icon
Divider

ObjectStream в Java

10
мин.

Similar Articles Icon
Divider

FilterStream в Java

12
мин.

Similar Articles Icon