public abstract class CharSink extends Object
A destination to which characters can be written, such as a text file. Unlike a Writer
, a CharSink
is not an open, stateful stream that can be written to and closed. Instead, it is an immutable supplier of Writer
instances.
CharSink
provides two kinds of methods:
Any ByteSink
may be viewed as a CharSink
with a specific character encoding using ByteSink.asCharSink(Charset)
. Characters written to the resulting CharSink
will written to the ByteSink
as encoded bytes.
Modifier | Constructor and Description |
---|---|
protected |
CharSink()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
Writer |
openBufferedStream()
Opens a new buffered
Writer for writing to this sink. |
abstract Writer |
openStream()
Opens a new
Writer for writing to this sink. |
void |
write(CharSequence charSequence)
Writes the given character sequence to this sink.
|
long |
writeFrom(Readable readable)
|
void |
writeLines(Iterable<? extends CharSequence> lines)
Writes the given lines of text to this sink with each line (including the last) terminated with the operating system’s default line separator.
|
void |
writeLines(Iterable<? extends CharSequence> lines,
String lineSeparator)
Writes the given lines of text to this sink with each line (including the last) terminated with the given line separator.
|
public abstract Writer openStream() throws IOException
Opens a new Writer
for writing to this sink. This method should return a new, independent writer each time it is called.
The caller is responsible for ensuring that the returned writer is closed.
IOException
- if an I/O error occurs in the process of opening the writerpublic Writer openBufferedStream() throws IOException
Opens a new buffered Writer
for writing to this sink. The returned stream is not required to be a BufferedWriter
in order to allow implementations to simply delegate to openStream()
when the stream returned by that method does not benefit from additional buffering. This method should return a new, independent writer each time it is called.
The caller is responsible for ensuring that the returned writer is closed.
IOException
- if an I/O error occurs in the process of opening the writerBufferedWriter
)public void write(CharSequence charSequence) throws IOException
Writes the given character sequence to this sink.
IOException
- if an I/O error in the process of writing to this sinkpublic void writeLines(Iterable<? extends CharSequence> lines) throws IOException
Writes the given lines of text to this sink with each line (including the last) terminated with the operating system’s default line separator. This method is equivalent to writeLines(lines, System.getProperty("line.separator"))
.
IOException
- if an I/O error occurs in the process of writing to this sinkpublic void writeLines(Iterable<? extends CharSequence> lines, String lineSeparator) throws IOException
Writes the given lines of text to this sink with each line (including the last) terminated with the given line separator.
IOException
- if an I/O error occurs in the process of writing to this sinkpublic long writeFrom(Readable readable) throws IOException
Writes all the text from the given Readable
(such as a Reader
) to this sink. Does not close readable
if it is Closeable
.
IOException
- if an I/O error occurs in the process of reading from readable
or writing to this sink