Spec-Zone.ru › OpenJDK 24

Класс 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
См. также:
  • PipedOutputStream

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

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

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

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

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

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

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

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

Методы, объявленные в классе java.lang.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
Создаёт поток ввода трубы, так что он подключён к потоку вывода трубы 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, закрыта или если произошла ошибка ввода-вывода.
См. также:
  • 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 - если произошла ошибка ввода-вывода.

© 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

Spec-Zone.ru

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