Spec-Zone.ru › OpenJDK 27

Класс 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
Модификатор и тип Метод Описание
void mark(int readlimit)
Помечает текущую позицию в этом входном потоке.
boolean markSupported()
Проверяет, поддерживает ли этот входной поток методы mark и reset.
static InputStream nullInputStream()
Возвращает новый InputStream, который не считывает ни одного байта.
int read(byte[] b)
Считывает некоторое количество байтов из входного потока и сохраняет их в массиве-буфере b.
byte[] readAllBytes()
Считывает все оставшиеся байты из входного потока.
int readNBytes(byte[] b, int off, int len)
Считывает из входного потока указанное количество байтов в заданный массив байтов.
byte[] readNBytes(int len)
Считывает из входного потока не более указанного количества байтов.
void reset()
Возвращает этот поток к позиции, на которой он находился в момент последнего вызова метода mark для этого входного потока.
long skip(long n)
Пропускает и отбрасывает n байтов данных из этого входного потока.
void skipNBytes(long n)
Пропускает и отбрасывает ровно n байтов данных из этого входного потока.
long transferTo(OutputStream out)
Считывает все байты из этого входного потока и записывает их в заданный выходной поток в порядке считывания.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Проверяет, «равен ли» этот объект другому объекту.
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(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного периода реального времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно в результате вызова 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, закрыт или возникает ошибка ввода-вывода.
См. также:
  • 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, 2026, 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.

Spec-Zone.ru

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