Класс PipedInputStream
java.lang.Object
java.io.InputStream
java.io.PipedInputStream
- Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class PipedInputStream extends InputStream
Поток ввода из канала должен быть подключен к потоку вывода в канал; после этого поток ввода из канала предоставляет все байты данных, записанные в поток вывода в канал. Обычно один поток считывает данные из объекта
PipedInputStream, а другой поток записывает данные в соответствующий объект PipedOutputStream. Не рекомендуется использовать оба объекта из одного потока, поскольку это может привести к взаимной блокировке потока. Поток ввода из канала содержит буфер, который в определенных пределах отделяет операции чтения от операций записи. Канал считается сломавшимся , если поток, передававший байты данных в подключенный поток вывода в канал, больше не активен.- Начиная с:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected byte[] |
buffer |
Циклический буфер, в который помещаются входящие данные. |
protected int |
in |
Индекс позиции в циклическом буфере, в которую будет помещен следующий байт данных, полученный из подключенного потока вывода в канал. |
protected int |
out |
Индекс позиции в циклическом буфере, из которой этот поток ввода из канала прочитает следующий байт данных. |
protected static final int |
PIPE_SIZE |
Размер циклического буфера ввода канала по умолчанию. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
PipedInputStream() |
Создает PipedInputStream, который пока не подключен. |
PipedInputStream |
Создает PipedInputStream, который пока не подключен, и задает указанный размер буфера канала. |
PipedInputStream |
Создает PipedInputStream, подключенный к потоку вывода в канал src. |
PipedInputStream |
Создает PipedInputStream, подключенный к потоку вывода в канал src, и задает указанный размер буфера канала. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
int |
available() |
Возвращает количество байтов, которые можно прочитать из этого входного потока без блокировки. |
void |
close() |
Закрывает этот входной поток и освобождает связанные с ним системные ресурсы. |
void |
connect |
Подключает этот поток ввода из канала к потоку вывода в канал src. |
int |
read() |
Считывает следующий байт данных из этого потока ввода из канала. |
int |
read |
Считывает до len байтов данных из этого потока ввода из канала в массив байтов. |
protected void |
receive |
Получает байт данных. |
Методы, объявленные в классе InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo | Модификатор и тип | Метод | Описание |
|---|---|---|
void |
mark |
Помечает текущую позицию в этом входном потоке. |
boolean |
markSupported() |
Проверяет, поддерживает ли этот входной поток методы mark и reset. |
static InputStream |
nullInputStream() |
Возвращает новый InputStream, который не считывает ни одного байта. |
int |
read |
Считывает некоторое количество байтов из входного потока и сохраняет их в массиве-буфере b. |
byte[] |
readAllBytes() |
Считывает все оставшиеся байты из входного потока. |
int |
readNBytes |
Считывает из входного потока указанное количество байтов в заданный массив байтов. |
byte[] |
readNBytes |
Считывает из входного потока не более указанного количества байтов. |
void |
reset() |
Возвращает этот поток к позиции, на которой он находился в момент последнего вызова метода mark для этого входного потока. |
long |
skip |
Пропускает и отбрасывает n байтов данных из этого входного потока. |
void |
skipNBytes |
Пропускает и отбрасывает ровно n байтов данных из этого входного потока. |
long |
transferTo |
Считывает все байты из этого входного потока и записывает их в заданный выходной поток в порядке считывания. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Проверяет, «равен ли» этот объект другому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API подлежит удалению в будущей версии. Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
String |
toString() |
Возвращает строковое представление объекта. |
final void |
wait() |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени. |
final void |
wait |
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени. |
Подробное описание полей
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
Создает
PipedInputStream, подключенный к потоку вывода в канал src. Байты данных, записанные в src, после этого будут доступны для чтения из этого потока.- Параметры:
-
src— поток для подключения. - Исключения:
-
IOException— если возникает ошибка ввода-вывода.
PipedInputStream
public PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException
Создает
PipedInputStream, подключенный к потоку вывода в канал src, и задает указанный размер буфера канала. Байты данных, записанные в src, после этого будут доступны для чтения из этого потока.- Параметры:
-
src— поток для подключения. -
pipeSize— размер буфера канала. - Исключения:
-
IOException— если возникает ошибка ввода-вывода. -
IllegalArgumentException— еслиpipeSize <= 0. - Начиная с:
- 1.6
PipedInputStream
public PipedInputStream()
Создает
PipedInputStream, который пока не подключен. Перед использованием его необходимо подключить к PipedOutputStream.PipedInputStream
public PipedInputStream(int pipeSize)
Создает
PipedInputStream, который пока не подключен, и задает указанный размер буфера канала. Перед использованием его необходимо подключить к 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.