Spec-Zone.ru › OpenJDK 25

Класс PipedInputStream

java.lang.Object
java.io.InputStream
java.io.PipedInputStream
Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class PipedInputStream extends InputStream
Входной поток канала должен быть соединен с выходным потоком канала; после этого входной поток канала предоставляет все байты данных, записанные в выходной поток канала. Обычно один поток считывает данные из объекта PipedInputStream, а другой поток записывает данные в соответствующий объект PipedOutputStream. Не рекомендуется использовать оба объекта из одного потока, поскольку это может привести к его взаимной блокировке. Входной поток канала содержит буфер, который в определенных пределах отделяет операции чтения от операций записи. Канал считается поврежденным , если поток, передававший байты данных в соединенный с ним выходной поток канала, больше не активен.
Начиная с версии:
1.0
См. также:
  • PipedOutputStream

Краткое описание полей

Модификатор и тип Поле Описание
protected byte[] buffer
Кольцевой буфер, в который помещаются входящие данные.
protected int in
Индекс позиции в кольцевом буфере, в которой будет сохранен следующий байт данных, полученный из соединенного выходного потока канала.
protected int out
Индекс позиции в кольцевом буфере, из которой этот входной поток канала прочитает следующий байт данных.
protected static final int PIPE_SIZE
Размер кольцевого буфера ввода канала по умолчанию.

Краткое описание конструкторов

Конструктор Описание
PipedInputStream()
Создает PipedInputStream, который еще не соединен.
PipedInputStream(int pipeSize)
Создает PipedInputStream, который еще не соединен, и задает указанный размер буфера канала.
PipedInputStream(PipedOutputStream src)
Создает PipedInputStream, соединенный с выходным потоком канала src.
PipedInputStream(PipedOutputStream src, int pipeSize)
Создает PipedInputStream, соединенный с выходным потоком канала src, и задает указанный размер буфера канала.

Краткое описание методов

Модификатор и тип Метод Описание
int available()
Возвращает количество байтов, которые можно прочитать из этого входного потока без блокировки.
void close()
Закрывает этот входной поток и освобождает все системные ресурсы, связанные с ним.
void connect(PipedOutputStream src)
Соединяет этот входной поток канала с выходным потоком канала src.
int read()
Читает следующий байт данных из этого входного потока канала.
int read(byte[] b, int off, int len)
Читает до len байтов данных из этого входного потока канала в массив байтов.
protected void receive(int b)
Получает байт данных.

Методы, объявленные в классе InputStream

mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, skipNBytes, transferTo

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Подробное описание полей

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, закрыт или произошла ошибка ввода-вывода.
См. также:
  • InputStream.read()

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 — если произошла ошибка ввода-вывода.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/io/PipedInputStream.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API