Spec-Zone.ru › OpenJDK 17

Класс 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)
Получает байт данных.

Методы, объявленные в классе 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
Размер буфера кругового ввода по умолчанию для трубы.
Since:
1.1
См. также:
  • Значения константных полей

buffer

protected byte[] buffer
Круговой буфер, в который помещаются входящие данные.
Since:
1.1

in

protected int in
Индекс позиции в круговом буфере, куда будет записан следующий байт данных при получении их от подключенного потока вывода. in < 0 означает, что буфер пуст, in == out означает, что буфер заполнен
Since:
1.1

out

protected int out
Индекс позиции в круговом буфере, из которой следующий байт данных будет прочитан этим потоком ввода.
Since:
1.1

Подробное описание конструкторов

PipedInputStream

public PipedInputStream(PipedOutputStream src) throws IOException
Создаёт поток ввода, подключённый к потоку вывода src. Байты данных, записанные в src, будут доступны как ввод из этого потока.
Parameters:
src - поток для подключения.
Throws:
IOException - если произошла ошибка ввода-вывода.

PipedInputStream

public PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException
Создаёт поток ввода, подключённый к потоку вывода src и использующий указанный размер трубы для буфера. Байты данных, записанные в src, будут доступны как ввод из этого потока.
Parameters:
src - поток для подключения.
pipeSize - размер буфера трубы.
Throws:
IOException - если произошла ошибка ввода-вывода.
IllegalArgumentException - если pipeSize <= 0.
Since:
1.6

PipedInputStream

public PipedInputStream()
Создаёт поток ввода, который пока не подключён. Он должен быть подключён к потоку вывода PipedOutputStream перед использованием.

PipedInputStream

public PipedInputStream(int pipeSize)
Создаёт поток ввода, который пока не подключён и использует указанный размер трубы для буфера. Он должен быть подключён к потоку вывода PipedOutputStream перед использованием.
Parameters:
pipeSize - размер буфера трубы.
Throws:
IllegalArgumentException - если pipeSize <= 0.
Since:
1.6

Подробное описание методов

connect

public void connect(PipedOutputStream src) throws IOException
Подключает этот поток ввода к потоку вывода src. Если этот объект уже подключен к другому потоку вывода, выбрасывается IOException.

Если src это не подключенный поток вывода, а snk это не подключенный поток ввода, их можно подключить либо с помощью вызова:

snk.connect(src) 

или с помощью вызова:

src.connect(snk) 

Эти два вызова имеют одинаковый эффект.

Parameters:
src - Поток вывода для подключения.
Throws:
IOException - если произошла ошибка ввода-вывода.

receive

protected void receive(int b) throws IOException
Получает байт данных. Этот метод будет блокироваться, если ввод недоступен.
Parameters:
b - получаемый байт
Throws:
IOException - Если труба broken, unconnected, закрыта, или если произошла ошибка ввода-вывода.
Since:
1.1

read

public int read() throws IOException
Читает следующий байт данных из этого потока ввода. Значение байта возвращается как int в диапазоне от 0 до 255. Этот метод блокируется, пока данные ввода недоступны, не будет обнаружен конец потока или не будет выброшено исключение.
Specified by:
read в классе InputStream
Returns:
следующий байт данных или -1 если достигнут конец потока.
Throws:
IOException - если труба unconnected, broken, закрыта или произошла ошибка ввода-вывода.

read

public int read(byte[] b, int off, int len) throws IOException
Читает до len байтов данных из этого потока ввода в массив байтов. Меньше чем len байтов будет считано, если достигнут конец потока данных или если len превышает размер буфера трубы. Если len равно нулю, то байты не считываются, и возвращается 0; в противном случае метод блокируется, пока не будет доступен хотя бы 1 байт ввода, не будет обнаружен конец потока или не будет выброшено исключение.
Overrides:
read в классе InputStream
Parameters:
b - буфер, в который считываются данные.
off - начальный смещение в целевом массиве b
len - максимальное количество считываемых байтов.
Returns:
общее количество байтов, считанных в буфер, или -1 если больше нет данных, так как достигнут конец потока.
Throws:
NullPointerException - Если b равно null.
IndexOutOfBoundsException - Если off отрицательно, len отрицательно или len больше чем b.length - off
IOException - если труба broken, unconnected, закрыта или произошла ошибка ввода-вывода.
См. также:
  • InputStream.read()

available

public int available() throws IOException
Возвращает количество байтов, которые можно прочитать из этого потока ввода без блокировки.
Overrides:
available в классе InputStream
Returns:
количество байтов, которые можно прочитать из этого потока ввода без блокировки, или 0 если этот поток ввода был закрыт, вызвав метод close(), или если труба unconnected, или broken.
Throws:
IOException - если произошла ошибка ввода-вывода.
Since:
1.0.2

close

public void close() throws IOException
Закрывает этот поток ввода и освобождает все системные ресурсы, связанные с потоком.
Specified by:
close в интерфейсе AutoCloseable
Specified by:
close в интерфейсе Closeable
Overrides:
close в классе InputStream
Throws:
IOException - если произошла ошибка ввода-вывода.

© 1993, 2021, 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/17/docs/api/java.base/java/io/PipedInputStream.html

Spec-Zone.ru

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