Класс PipedInputStream
java.lang.Object
java.io.InputStream
java.io.PipedInputStream
- Все реализованные интерфейсы:
-
Closeable,AutoCloseable
public class PipedInputStream extends InputStream
Потоковый ввод типа pipe должен быть подключен к потоку вывода типа pipe; поток ввода pipe затем предоставляет все байты данных, записанные в поток вывода pipe. Обычно данные считываются из объекта
PipedInputStream одним потоком, а данные записываются в соответствующий объект PipedOutputStream другим потоком. Попытка использовать оба объекта из одного потока не рекомендуется, так как это может привести к тупику потока. Поток ввода pipe содержит буфер, разделяющий операции чтения и записи в пределах ограничений. Говорят, что канал разрушен , если поток, предоставляющий байты данных подключенному потоку вывода pipe, больше не активен.- С:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected byte[] |
buffer |
Циклический буфер, в который помещаются входящие данные. |
protected int |
in |
Индекс позиции в циклическом буфере, в который будет помещен следующий байт данных при получении от подключенного потока вывода pipe. |
protected int |
out |
Индекс позиции в циклическом буфере, из которого следующий байт данных будет прочитан этим потоком ввода pipe. |
protected static final int |
PIPE_SIZE |
Размер буфера циклического ввода канала по умолчанию. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PipedInputStream() |
Создает PipedInputStream, который еще не подключен. |
PipedInputStream |
Создает PipedInputStream, который еще не подключен и использует указанный размер канала для буфера канала. |
PipedInputStream |
Создает PipedInputStream, который подключен к потоку вывода pipe src. |
PipedInputStream |
Создает PipedInputStream, который подключен к потоку вывода pipe src и использует указанный размер канала для буфера канала. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Возвращает количество байтов, которые могут быть прочитаны из этого потока ввода без блокировки. |
void |
close() |
Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком. |
void |
connect |
Подключает этот поток ввода pipe к потоку вывода pipe src. |
int |
read() |
Считывает следующий байт данных из этого потока ввода pipe. |
int |
read |
Считывает до len байтов данных из этого потока ввода pipe в массив байтов. |
protected void |
receive |
Получает байт данных. |
Методы, объявленные в классе java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo
Подробное описание полей
PIPE_SIZE
protected static final int PIPE_SIZE
Значение по умолчанию для размера кругового буфера ввода трубы.
- С тех пор:
- 1.1
- См. также:
buffer
protected byte[] buffer
Круговой буфер, в который помещаются входящие данные.
- С тех пор:
- 1.1
in
protected int in
Индекс позиции в круговом буфере, в которой будет храниться следующий байт данных, полученный из подключенного потока вывода трубы.
in < 0 означает, что буфер пустой, in == out означает, что буфер заполнен- С тех пор:
- 1.1
out
protected int out
Индекс позиции в круговом буфере, из которого этот поток ввода трубы будет читать следующий байт данных.
- С тех пор:
- 1.1
Подробное описание конструкторов
PipedInputStream
public PipedInputStream(PipedOutputStream src) throws IOException
Создаёт поток ввода трубы, так что он подключён к потоку вывода трубы
src. Байты данных, записанные в src, будут доступны как входные данные для этого потока.- Параметры:
-
src- поток, к которому нужно подключиться. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
PipedInputStream
public PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException
Создаёт поток ввода трубы, так что он подключён к потоку вывода трубы
src и использует заданный размер трубы для буфера трубы. Байты данных, записанные в src, будут доступны как входные данные для этого потока.- Параметры:
-
src- поток, к которому нужно подключиться. -
pipeSize- размер буфера трубы. - Исключения:
-
IOException- если произошла ошибка ввода-вывода. -
IllegalArgumentException- еслиpipeSize <= 0. - С тех пор:
- 1.6
PipedInputStream
public PipedInputStream()
Создаёт поток ввода трубы, так что он ещё не подключён. Его нужно подключить к потоку
PipedOutputStream перед использованием.PipedInputStream
public PipedInputStream(int pipeSize)
Создаёт поток ввода трубы, так что он ещё не подключён и использует заданный размер трубы для буфера трубы. Его нужно подключить к потоку
PipedOutputStream перед использованием.- Параметры:
-
pipeSize- размер буфера трубы. - Исключения:
-
IllegalArgumentException- еслиpipeSize <= 0. - С тех пор:
- 1.6
Подробное описание методов
connect
public void connect(PipedOutputStream src) throws IOException
Подключает этот поток ввода трубы к потоку вывода трубы
src. Если этот объект уже подключён к другому потоку вывода трубы, выбрасывается IOException. Если src является неподключённым потоком вывода трубы, а snk является неподключённым потоком ввода трубы, их можно подключить либо вызовом:
snk.connect(src)
либо вызовом:
src.connect(snk)
Оба вызова дают одинаковый эффект.
- Параметры:
-
src- Поток вывода трубы, к которому нужно подключиться. - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
receive
protected void receive(int b) throws IOException
Принимает байт данных. Этот метод будет блокироваться, если входные данные недоступны.
- Параметры:
-
b- байт, который принимается - Исключения:
-
IOException- Если трубаbroken,unconnected, закрыта, или если произошла ошибка ввода-вывода. - С тех пор:
- 1.1
read
public int read() throws IOException
Считывает следующий байт данных из этого потока ввода трубы. Значение байта возвращается как
int в диапазоне 0 до 255. Этот метод блокируется, пока не будут доступны входные данные, не будет обнаружен конец потока или не будет выброшено исключение.- Определено в:
-
readв классеInputStream - Возвращает:
- следующий байт данных или
-1, если достигнут конец потока. - Исключения:
-
IOException- если трубаunconnected,broken, закрыта, или если произошла ошибка ввода-вывода.
read
public int read(byte[] b, int off, int len) throws IOException
Считывает до
len байтов данных из этого потока ввода трубы в массив байтов. Менее чем len байтов будет считано, если достигнут конец потока данных или если len превышает размер буфера трубы. Если len равно нулю, то байты не считываются, и возвращается 0; в противном случае метод блокируется, пока не будет доступен по крайней мере 1 байт входных данных, не будет обнаружен конец потока или не будет выброшено исключение.- Переопределяет:
-
readв классеInputStream - Параметры:
-
b- буфер, в который считываются данные. -
off- начальный смещение в массивеb, в котором записываются данные. -
len- максимальное количество байтов для чтения. - Возвращает:
- общее количество байтов, считанных в буфер, или
-1, если больше нет данных, потому что достигнут конец потока. - Исключения:
-
NullPointerException- Еслиbравноnull. -
IndexOutOfBoundsException- Еслиoffотрицательно,lenотрицательно илиlenбольше чемb.length - off -
IOException- если трубаbroken,unconnected, закрыта или если произошла ошибка ввода-вывода. - См. также:
available
public int available() throws IOException
Возвращает количество байтов, которые можно прочитать из этого потока ввода без блокировки.
- Переопределяет:
-
availableв классеInputStream - Возвращает:
- количество байтов, которые можно прочитать из этого потока ввода без блокировки, или
0, если этот поток ввода был закрыт вызовом методаclose()или если трубаunconnectedилиbroken. - Исключения:
-
IOException- если произошла ошибка ввода-вывода. - С тех пор:
- 1.0.2
close
public void close() throws IOException
Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком.
- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Переопределяет:
-
closeв классеInputStream - Исключения:
-
IOException- если произошла ошибка ввода-вывода.
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/io/PipedInputStream.html