public abstract class

Writer

extends Object
implements Closeable Flushable Appendable
java.lang.Object
   ↳ java.io.Writer
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

The base class for all writers. A writer is a means of writing data to a target in a character-wise manner. Most output streams expect the flush() method to be called before closing the stream, to ensure all data is actually written out.

This abstract class does not provide a fully working implementation, so it needs to be subclassed, and at least the write(char[], int, int), close() and flush() methods needs to be overridden. Overriding some of the non-abstract methods is also often advised, since it might result in higher efficiency.

Many specialized readers for purposes like reading from a file already exist in this package.

See Also

Summary

Fields
protected Object lock The object used to synchronize access to the writer.
Protected Constructors
Writer()
Constructs a new Writer with this as the object used to synchronize critical sections.
Writer(Object lock)
Constructs a new Writer with lock used to synchronize critical sections.
Public Methods
Writer append(CharSequence csq)
Appends the character sequence csq to the target.
Writer append(CharSequence csq, int start, int end)
Appends a subsequence of the character sequence csq to the target.
Writer append(char c)
Appends the character c to the target.
abstract void close()
Closes this writer.
abstract void flush()
Flushes this writer.
void write(char[] buf)
Writes the entire character buffer buf to the target.
void write(String str)
Writes the characters from the specified string to the target.
abstract void write(char[] buf, int offset, int count)
Writes count characters starting at offset in buf to the target.
void write(String str, int offset, int count)
Writes count characters from str starting at offset to the target.
void write(int oneChar)
Writes one character to the target.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.io.Closeable
From interface java.io.Flushable
From interface java.lang.Appendable

Fields

protected Object lock

Since: API Level 1

The object used to synchronize access to the writer.

Protected Constructors

protected Writer ()

Since: API Level 1

Constructs a new Writer with this as the object used to synchronize critical sections.

protected Writer (Object lock)

Since: API Level 1

Constructs a new Writer with lock used to synchronize critical sections.

Parameters
lock the Object used to synchronize critical sections.
Throws
NullPointerException if lock is null.

Public Methods

public Writer append (CharSequence csq)

Since: API Level 1

Appends the character sequence csq to the target. This method works the same way as Writer.write(csq.toString()). If csq is null, then the string "null" is written to the target stream.

Parameters
csq the character sequence appended to the target.
Returns
  • this writer.
Throws
IOException if this writer is closed or another I/O error occurs.

public Writer append (CharSequence csq, int start, int end)

Since: API Level 1

Appends a subsequence of the character sequence csq to the target. This method works the same way as Writer.writer(csq.subsequence(start, end).toString()). If csq is null, then the specified subsequence of the string "null" will be written to the target.

Parameters
csq the character sequence appended to the target.
start the index of the first char in the character sequence appended to the target.
end the index of the character following the last character of the subsequence appended to the target.
Returns
  • this writer.
Throws
IOException if this writer is closed or another I/O error occurs.
IndexOutOfBoundsException if start > end, start < 0, end < 0 or either start or end are greater or equal than the length of csq.

public Writer append (char c)

Since: API Level 1

Appends the character c to the target. This method works the same way as write(int).

Parameters
c the character to append to the target stream.
Returns
  • this writer.
Throws
IOException if this writer is closed or another I/O error occurs.

public abstract void close ()

Since: API Level 1

Closes this writer. Implementations of this method should free any resources associated with the writer.

Throws
IOException if an error occurs while closing this writer.

public abstract void flush ()

Since: API Level 1

Flushes this writer. Implementations of this method should ensure that all buffered characters are written to the target.

Throws
IOException if an error occurs while flushing this writer.

public void write (char[] buf)

Since: API Level 1

Writes the entire character buffer buf to the target.

Parameters
buf the non-null array containing characters to write.
Throws
IOException if this writer is closed or another I/O error occurs.

public void write (String str)

Since: API Level 1

Writes the characters from the specified string to the target.

Parameters
str the non-null string containing the characters to write.
Throws
IOException if this writer is closed or another I/O error occurs.

public abstract void write (char[] buf, int offset, int count)

Since: API Level 1

Writes count characters starting at offset in buf to the target.

Parameters
buf the non-null character array to write.
offset the index of the first character in buf to write.
count the maximum number of characters to write.
Throws
IndexOutOfBoundsException if offset < 0 or count < 0, or if offset + count is greater than the size of buf.
IOException if this writer is closed or another I/O error occurs.

public void write (String str, int offset, int count)

Since: API Level 1

Writes count characters from str starting at offset to the target.

Parameters
str the non-null string containing the characters to write.
offset the index of the first character in str to write.
count the number of characters from str to write.
Throws
IOException if this writer is closed or another I/O error occurs.
IndexOutOfBoundsException if offset < 0 or count < 0, or if offset + count is greater than the length of str.

public void write (int oneChar)

Since: API Level 1

Writes one character to the target. Only the two least significant bytes of the integer oneChar are written.

Parameters
oneChar the character to write to the target.
Throws
IOException if this writer is closed or another I/O error occurs.