Spec-Zone .ru
спецификации, руководства, описания, API
|
public class PipedInputStream extends InputStream
PipedInputStream
объект одним потоком и данными пишется соответствию PipedOutputStream
некоторым другим потоком. Попытка использовать оба объекта от единственного потока не рекомендуется, поскольку она может мертвая блокировка поток. Переданный по каналу входной поток содержит буфер, разъединяя операции чтения от операций записи, в определенных рамках. Канал, как говорят, повреждается, если поток, который обеспечивал байты данных для соединенного переданного по каналу потока вывода, больше не жив.PipedOutputStream
Модификатор и Тип | Поле и Описание |
---|---|
protected byte[] |
буфер
Круговой буфер, в который помещаются входящие данные.
|
protected int |
в
Индекс позиции в круговом буфере, в котором следующий байт данных будет сохранен когда получено из соединенного переданного по каналу потока вывода.
|
protected int |
Индекс позиции в круговом буфере, в котором следующий байт данных будет считан этим переданным по каналу входным потоком.
|
protected static int |
PIPE_SIZE
Размер по умолчанию кругового входного буфера канала.
|
Конструктор и Описание |
---|
PipedInputStream()
Создает a
PipedInputStream так, чтобы это еще не было соединено. |
PipedInputStream(int pipeSize)
Создает a
PipedInputStream так, чтобы это еще не было соединено и использовало указанный размер канала для буфера канала. |
PipedInputStream(PipedOutputStream src)
Создает a
PipedInputStream так, чтобы это было соединено с переданным по каналу потоком вывода src . |
PipedInputStream(PipedOutputStream src, int pipeSize)
Создает a
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)
Получает байт данных.
|
mark, markSupported, read, reset, skip
protected static final int PIPE_SIZE
protected byte[] buffer
protected int in
in<0
подразумевает, что буфер пуст, in==out
подразумевает, что буфер полонprotected int out
public PipedInputStream(PipedOutputStream src) throws IOException
PipedInputStream
так, чтобы это было соединено с переданным по каналу потоком вывода src
. Байты данных, записанные src
тогда будет доступно как входной от этого потока.src
- поток, чтобы соединиться с.IOException
- если ошибка ввода-вывода происходит.public PipedInputStream(PipedOutputStream src, int pipeSize) throws IOException
PipedInputStream
так, чтобы это было соединено с переданным по каналу потоком вывода src
и использует указанный размер канала для буфера канала. Байты данных, записанные src
тогда будет доступно как входной от этого потока.src
- поток, чтобы соединиться с.pipeSize
- размер буфера канала.IOException
- если ошибка ввода-вывода происходит.IllegalArgumentException
- если pipeSize <= 0
.public PipedInputStream()
public PipedInputStream(int pipeSize)
PipedInputStream
so that it is not yet connected and uses the specified pipe size for the pipe's buffer. It must be connected to a PipedOutputStream
before being used.pipeSize
- the size of the pipe's buffer.IllegalArgumentException
- if pipeSize <= 0
.public void connect(PipedOutputStream src) throws IOException
src
. If this object is already connected to some other piped output stream, an IOException
is thrown. If src
is an unconnected piped output stream and snk
is an unconnected piped input stream, they may be connected by either the call:
snk.connect(src)
or the call:
src.connect(snk)
The two calls have the same effect.
src
- The piped output stream to connect to.IOException
- if an I/O error occurs.protected void receive(int b) throws IOException
b
- the byte being receivedIOException
- If the pipe is broken
, unconnected
, closed, or if an I/O error occurs.public int read() throws IOException
int
in the range 0
to 255
. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.read
in class InputStream
-1
if the end of the stream is reached.IOException
- if the pipe is unconnected
, broken
, closed, or if an I/O error occurs.public int read(byte[] b, int off, int len) throws IOException
len
bytes of data from this piped input stream into an array of bytes. Less than len
bytes will be read if the end of the data stream is reached or if len
exceeds the pipe's buffer size. If len
is zero, then no bytes are read and 0 is returned; otherwise, the method blocks until at least 1 byte of input is available, end of the stream has been detected, or an exception is thrown.read
in class InputStream
b
- the buffer into which the data is read.off
- the start offset in the destination array b
len
- the maximum number of bytes read.-1
if there is no more data because the end of the stream has been reached.NullPointerException
- If b
is null
.IndexOutOfBoundsException
- If off
is negative, len
is negative, or len
is greater than b.length - off
IOException
- if the pipe is broken
, unconnected
, closed, or if an I/O error occurs.InputStream.read()
public int available() throws IOException
available
in class InputStream
0
if this input stream has been closed by invoking its close()
method, or if the pipe is unconnected
, or broken
.IOException
- if an I/O error occurs.public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class InputStream
IOException
- if an I/O error occurs.
For further API reference and developer documentation, see
Copyright © 1993, 2011, Oracle and/or its affiliates. All rights reserved.