public class TeeWriter extends Writer
Copies the data that is written to this class to the Writer(s)
passed in the constructor. It also collect statistics on the operations
done (time spent writing to the internal writers, amount of data written).
Usage:
InputStream source=... //some data to be read. StringWriter destination1= new StringWriter(); StringWriter destination2= new StringWriter(); TeeWriter tee = new TeeWriter(destination1,destination2); org.apache.commons.io.IOUtils.copy(source,tee); tee.close(); //at this point both destination1 and destination2 contains the same characters.
Modifier and Type | Field and Description |
---|---|
protected boolean |
closeCalled
True when close() is invoked. |
protected Writer[] |
destinations
The destination
Writer(s) where data is written. |
Constructor and Description |
---|
TeeWriter(Writer... destinations)
Creates a
TeeWriter and saves its arguments, the
destinations for later use. |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
enableCopy(boolean enable)
Allow to switch off the copy to the underlying streams.
|
void |
enableCopy(boolean[] enable)
Allow to switch off the copy to the underlying streams, selectively
enabling or disabling copy on some specific stream.
|
void |
flush() |
long |
getSize()
This method returns the size in bytes of the data written to this
Writer.
|
long[] |
getWriteTime()
Return the time spent writing to the destination
Writer(s)
in milliseconds. |
void |
write(char[] b) |
void |
write(char[] b,
int off,
int len) |
void |
write(int b) |
protected boolean closeCalled
protected final Writer[] destinations
Writer(s)
where data is written.public TeeWriter(Writer... destinations)
Creates a TeeWriter
and saves its arguments, the
destinations
for later use.
This constructor allow to specify multiple Writer
to which
the data will be copied.
destinations
- Data written to thisWriter
are copied to all
the destinations
.public void close() throws IOException
close
in interface Closeable
close
in interface AutoCloseable
close
in class Writer
IOException
public final void enableCopy(boolean enable)
Allow to switch off the copy to the underlying streams. Setting the parameter to false will disable the copy to all the underlying streams at once.
If you need more fine grained control you should use
enableCopy(boolean[])
.
enable
- whether to copy or not the bytes to the underlying stream.public final void enableCopy(boolean[] enable)
Allow to switch off the copy to the underlying streams, selectively enabling or disabling copy on some specific stream.
The copy is enabled by default. Each element in the array correspond to
an OutputStream
passed in the constructor. If the
correspondent element in the array passed as a parameter is set to
true
the copy will be enabled.It can be invoked multiple
times.
enable
- whether to copy or not the bytes to the underlying stream.public void flush() throws IOException
flush
in interface Flushable
flush
in class Writer
IOException
public final long getSize()
This method returns the size in bytes of the data written to this Writer. It can be used to collect statistics on the write operations.
Writers
.public long[] getWriteTime()
Return the time spent writing to the destination Writer(s)
in milliseconds.
The returned array has one element for each Writer
passed
in the constructor.
Writers
.public void write(char[] b) throws IOException
write
in class Writer
IOException
public void write(char[] b, int off, int len) throws IOException
write
in class Writer
IOException
public void write(int b) throws IOException
write
in class Writer
IOException
Copyright © 2008–2016. All rights reserved.