java.io
Class PipedWriter

java.lang.Object
  extended by java.io.Writer
      extended by java.io.PipedWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable

public class PipedWriter
extends Writer

This class writes its chars to a PipedReader to which it is connected.

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


Field Summary
 
Fields inherited from class java.io.Writer
lock
 
Constructor Summary
PipedWriter()
          Create an unconnected PipedWriter.
PipedWriter(PipedReader sink)
          Create a new PipedWriter instance to write to the specified PipedReader.
 
Method Summary
 void close()
          This method closes this stream so that no more data can be written to it.
 void connect(PipedReader sink)
          Connects this object to the specified PipedReader object.
 void flush()
          This method does nothing.
 void write(char[] buffer, int offset, int len)
          This method writes len chars of data from the char array buf starting at index offset in the array to the stream.
 void write(int b)
          Write a single char of date to the stream.
 
Methods inherited from class java.io.Writer
append, append, append, write, write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PipedWriter

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


PipedWriter

public PipedWriter(PipedReader sink)
            throws IOException
Create a new PipedWriter instance to write to the specified PipedReader. This stream is then ready for writing.

Parameters:
sink - The PipedReader to connect this stream to.
Throws:
IOException - If sink has already been connected to a different PipedWriter.
Method Detail

connect

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

Parameters:
sink - The PipedReader to connect this stream to
Throws:
IOException - If the stream has not been connected or has been closed.

write

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

Overrides:
write in class Writer
Parameters:
b - The char 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(char[] buffer,
                  int offset,
                  int len)
           throws IOException
This method writes len chars of data from the char array buf starting at index offset in the array to the stream. Note that this method will block if the PipedReader to which this object is connected has a buffer that cannot hold all of the chars to be written.

Specified by:
write in class Writer
Parameters:
buffer - The array containing chars to write to the stream.
offset - The index into the array to start writing chars from.
len - The number of chars to write.
Throws:
IOException - If the stream has not been connected or has been closed.

flush

public void flush()
           throws IOException
This method does nothing.

Specified by:
flush in interface Flushable
Specified by:
flush in class Writer
Throws:
IOException - If the stream is closed.

close

public void close()
           throws IOException
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

Specified by:
close in interface Closeable
Specified by:
close in class Writer
Throws:
IOException - If an error occurs