Класс PipedInputStream

Все реализуемые интерфейсы:
Closeable, AutoCloseable
public class PipedInputStream
extends InputStream

Поток ввода «в трубе» должен быть подключён к потоку вывода «в трубе»; поток ввода «в трубе» затем предоставляет любые байты данных, которые записываются в поток вывода «в трубе». Как правило, данные считываются из объекта PipedInputStream одной нитью, а данные записываются в соответствующий объект PipedOutputStream другой нитью. Попытка использования обоих объектов из одной нити не рекомендуется, так как это может привести к тупику в нити. Поток ввода «в трубе» содержит буфер, который развязывает операции чтения от операций записи в пределах ограничений. Труба считается разрывной , если нить, которая предоставляла байты данных подключенному потоку вывода «в трубе», больше не активна.

С:
1.0
См. также:
PipedOutputStream

Поля

Модификатор и тип Поле Описание
protected byte[] buffer

Круговой буфер, в который помещаются входящие данные.

protected int in

Индекс позиции в круговом буфере, в котором будет храниться следующий байт данных при получении из подключенного потока вывода «в трубе».

protected int out

Индекс позиции в круговом буфере, из которого будет считать следующий байт данных этот поток ввода «в трубе».

protected static 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, 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, 2020, 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/11/docs/api/java.base/java/io/PipedInputStream.html

Spec-Zone .ru
спецификации, руководства, описания, API