is new.
java.lang.Objectjava.io.InputStream
java.io.PipedInputStream
public class PipedInputStream
A piped input stream should be connected to a piped output stream; the piped input stream then provides whatever data bytes are written to the piped output stream. Typically, data is read from a PipedInputStream object by one thread and data is written to the corresponding PipedOutputStream by some other thread. Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread. The piped input stream contains a buffer, decoupling read operations from write operations, within limits.
| Field Summary | |
|---|---|
| protected byte[] |
buffer
The circular buffer into which incoming data is placed. |
| protected int |
in
The index of the position in the circular buffer at which the next byte of data will be stored when received from the connected piped output stream. |
| protected int |
out
The index of the position in the circular buffer at which the next byte of data will be read by this piped input stream. |
| protected static int |
PIPE_SIZE
The size of the pipe's circular input buffer. |
| Constructor Summary | |
|---|---|
|
PipedInputStream
() Creates a PipedInputStream so that it is not yet connected. |
|
|
PipedInputStream
(
PipedOutputStream
src) Creates a PipedInputStream so that it is connected to the piped output stream src. |
|
| Method Summary | |
|---|---|
| int |
available
() Returns the number of bytes that can be read from this input stream without blocking. |
| void |
close
() Closes this piped input stream and releases any system resources associated with the stream. |
| void |
connect
(
PipedOutputStream
src) Causes this piped input stream to be connected to the piped output stream src. |
| int |
read
() Reads the next byte of data from this piped input stream. |
| int |
read
(byte[] b, int off, int len) Reads up to len bytes of data from this piped input stream into an array of bytes. |
| protected void |
receive
(int b) Receives a byte of data. |
| Methods inherited from class java.io. InputStream |
|---|
| mark , markSupported , read , reset , skip |
| Methods inherited from class java.lang. Object |
|---|
| clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait |
| Field Detail |
|---|
protected static final int PIPE_SIZE
protected byte[] buffer
protected int in
protected int out
| Constructor Detail |
|---|
public PipedInputStream(PipedOutputStream src)
throws IOException
public PipedInputStream()
| Method Detail |
|---|
public void connect(PipedOutputStream src)
throws IOException
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.
protected void receive(int b)
throws IOException
public int read()
throws IOException
public int read(byte[] b,
int off,
int len)
throws IOException
If len is not zero, the method blocks until at least 1 byte of input is available; otherwise, no bytes are read and 0 is returned.
in
destination array b
NullPointerException
- If b is null.
IndexOutOfBoundsException
- If off is negative, len is negative, or len is greater than b.length - off
- if a thread which was providing data bytes to the connected piped output stream is no longer alive, or other I/O error occurs.
public int available()
throws IOException
blocking or 0 if this input stream has been closed by invoking its
close()
method
public void close()
throws IOException