java.io

Class PipedOutputStream

public class PipedOutputStream extends OutputStream

This class writes its bytes to a PipedInputStream to which it is connected.

It is highly recommended that a PipedOutputStream and its connected PipedInputStream be in different threads. If they are in the same thread, read and write operations could deadlock the thread.

Constructor Summary
PipedOutputStream()
Create an unconnected PipedOutputStream.
PipedOutputStream(PipedInputStream sink)
Create a new PipedOutputStream instance to write to the specified PipedInputStream.
Method Summary
voidclose()
This method closes this stream so that no more data can be written to it.
voidconnect(PipedInputStream sink)
Connects this object to the specified PipedInputStream object.
voidflush()
This method does nothing.
voidwrite(int b)
Write a single byte of date to the stream.
voidwrite(byte[] buffer, int offset, int len)
This method writes len bytes of data from the byte array buf starting at index offset in the array to the stream.

Constructor Detail

PipedOutputStream

public PipedOutputStream()
Create an unconnected PipedOutputStream. It must be connected to a PipedInputStream using the connect method prior to writing any data or an exception will be thrown.

PipedOutputStream

public PipedOutputStream(PipedInputStream sink)
Create a new PipedOutputStream instance to write to the specified PipedInputStream. This stream is then ready for writing.

Parameters: sink The PipedInputStream to connect this stream to.

Throws: IOException If sink has already been connected to a different PipedOutputStream.

Method Detail

close

public void close()
This method closes this stream so that no more data can be written to it. Any further attempts to write to this stream may throw an exception

Throws: IOException If an error occurs

connect

public void connect(PipedInputStream sink)
Connects this object to the specified PipedInputStream object. This stream will then be ready for writing.

Parameters: sink The PipedInputStream to connect this stream to

Throws: IOException If the stream has not been connected or has been closed.

flush

public void flush()
This method does nothing.

Throws: IOException If the stream is closed.

UNKNOWN: You'd think that this method would block until the sink had read all available data. Thats not the case - this method appears to be a no-op?

write

public void write(int b)
Write a single byte of date to the stream. Note that this method will block if the PipedInputStream to which this object is connected has a full buffer.

Parameters: b The byte of data to be written, passed as an int.

Throws: IOException If the stream has not been connected or has been closed.

write

public void write(byte[] buffer, int offset, int len)
This method writes len bytes of data from the byte array buf starting at index offset in the array to the stream. Note that this method will block if the PipedInputStream to which this object is connected has a buffer that cannot hold all of the bytes to be written.

Parameters: buffer The array containing bytes to write to the stream. offset The index into the array to start writing bytes from. len The number of bytes to write.

Throws: IOException If the stream has not been connected or has been closed.