Spec-Zone.ru › OpenJDK 8

Класс 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», больше не существует.

С тех пор:
JDK1.0
См. также:
PipedOutputStream

Поля

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

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

protected int in

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

protected int out

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

protected static int PIPE_SIZE

Размер буфера циклического ввода «pipe» по умолчанию.

Конструкторы

Конструктор и описание
PipedInputStream()

Создает PipedInputStream так, что он еще не подключен.

PipedInputStream(int pipeSize)

Создает PipedInputStream так, что он еще не подключен и использует указанный размер трубы для буфера трубы.

PipedInputStream(PipedOutputStream src)

Создает PipedInputStream так, что он подключен к потоку вывода «pipe» src.

PipedInputStream(PipedOutputStream src, int pipeSize)

Создает PipedInputStream так, что он подключен к потоку вывода «pipe» src и использует указанный размер трубы для буфера трубы.

Методы

Модификатор и тип Метод и описание
int available()

Возвращает количество байтов, которые могут быть прочитаны из этого потока ввода без блокировки.

void close()

Закрывает этот поток ввода «pipe» и освобождает все системные ресурсы, связанные с потоком.

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, read, reset, skip

Методы, унаследованные от класса java.lang.Object

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

Поля

PIPE_SIZE

protected static final int PIPE_SIZE

Размер буфера циклического входного буфера трубы по умолчанию.

С тех пор:
JDK1.1
См. также:
Значения константных полей

buffer

protected byte[] buffer

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

С тех пор:
JDK1.1

in

protected int in

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

С тех пор:
JDK1.1

out

protected int out

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

С тех пор:
JDK1.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, закрыта или если произошла ошибка ввода-вывода.
С тех пор:
JDK1.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 - если произошла ошибка ввода-вывода.
С тех пор:
JDK1.0.2

close

public void close()
           throws IOException

Закрывает этот поток ввода трубы и освобождает все системные ресурсы, связанные с потоком.

Определено в:
close в интерфейсе Closeable
Определено в:
close в интерфейсе AutoCloseable
Переопределяет:
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.

Spec-Zone.ru

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