java.io
Class Writer

java.lang.Object
  extended byjava.io.Writer
Direct Known Subclasses:
BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, PipedWriter, PrintWriter, StringWriter, WriterToASCI, WriterToUTF8, WriterToUTF8Buffered

public abstract class Writer
extends Object

Abstract class for writing to character streams. The only methods that a subclass must implement are write(char[], int, int), flush(), and close(). Most subclasses, however, will override some of the methods defined here in order to provide higher efficiency, additional functionality, or both.

Since:
JDK1.1
Author:
Mark Reinhold
See Also:
Writer, BufferedWriter, CharArrayWriter, FilterWriter, OutputStreamWriter, FileWriter, PipedWriter, PrintWriter, StringWriter, Reader

Field Summary
protected  Object lock
          The object used to synchronize operations on this stream.
private  char[] writeBuffer
          Temporary buffer used to hold writes of strings and single characters
private  int writeBufferSize
          Size of writeBuffer, must be >= 1
 
Constructor Summary
protected Writer()
          Create a new character-stream writer whose critical sections will synchronize on the writer itself.
protected Writer(Object lock)
          Create a new character-stream writer whose critical sections will synchronize on the given object.
 
Method Summary
abstract  void close()
          Close the stream, flushing it first.
abstract  void flush()
          Flush the stream.
 void write(char[] cbuf)
          Write an array of characters.
abstract  void write(char[] cbuf, int off, int len)
          Write a portion of an array of characters.
 void write(int c)
          Write a single character.
 void write(String str)
          Write a string.
 void write(String str, int off, int len)
          Write a portion of a string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

writeBuffer

private char[] writeBuffer
Temporary buffer used to hold writes of strings and single characters


writeBufferSize

private final int writeBufferSize
Size of writeBuffer, must be >= 1

See Also:
Constant Field Values

lock

protected Object lock
The object used to synchronize operations on this stream. For efficiency, a character-stream object may use an object other than itself to protect critical sections. A subclass should therefore use the object in this field rather than this or a synchronized method.

Constructor Detail

Writer

protected Writer()
Create a new character-stream writer whose critical sections will synchronize on the writer itself.


Writer

protected Writer(Object lock)
Create a new character-stream writer whose critical sections will synchronize on the given object.

Parameters:
lock - Object to synchronize on.
Method Detail

write

public void write(int c)
           throws IOException
Write a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.

Subclasses that intend to support efficient single-character output should override this method.

Parameters:
c - int specifying a character to be written.
Throws:
IOException - If an I/O error occurs

write

public void write(char[] cbuf)
           throws IOException
Write an array of characters.

Parameters:
cbuf - Array of characters to be written
Throws:
IOException - If an I/O error occurs

write

public abstract void write(char[] cbuf,
                           int off,
                           int len)
                    throws IOException
Write a portion of an array of characters.

Parameters:
cbuf - Array of characters
off - Offset from which to start writing characters
len - Number of characters to write
Throws:
IOException - If an I/O error occurs

write

public void write(String str)
           throws IOException
Write a string.

Parameters:
str - String to be written
Throws:
IOException - If an I/O error occurs

write

public void write(String str,
                  int off,
                  int len)
           throws IOException
Write a portion of a string.

Parameters:
str - A String
off - Offset from which to start writing characters
len - Number of characters to write
Throws:
IOException - If an I/O error occurs

flush

public abstract void flush()
                    throws IOException
Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.

Throws:
IOException - If an I/O error occurs

close

public abstract void close()
                    throws IOException
Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.

Throws:
IOException - If an I/O error occurs