Package org.apache.commons.io.input
Class TeeReader
java.lang.Object
java.io.Reader
java.io.FilterReader
org.apache.commons.io.input.ProxyReader
org.apache.commons.io.input.TeeReader
- All Implemented Interfaces:
Closeable,AutoCloseable,Readable
Reader proxy that transparently writes a copy of all characters read from the proxied reader to a given Reader. Using
ProxyReader.skip(long) or ProxyReader.mark(int)/ProxyReader.reset() on the reader will result on some characters from the
reader being skipped or duplicated in the writer.
The proxied reader is closed when the close() method is called on this proxy. You may configure whether the
reader closes the writer.
- Since:
- 2.7
-
Field Summary
Fields inherited from class java.io.FilterReader
in -
Constructor Summary
ConstructorsConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the proxied reader and, if so configured, the associated writer.intread()Reads a single character from the proxied reader and writes it to the associated writer.intread(char[] chr) Reads characters from the proxied reader and writes the read characters to the associated writer.intread(char[] chr, int st, int end) Reads characters from the proxied reader and writes the read characters to the associated writer.intread(CharBuffer target) Reads characters from the proxied reader and writes the read characters to the associated writer.Methods inherited from class org.apache.commons.io.input.ProxyReader
afterRead, beforeRead, handleIOException, mark, markSupported, ready, reset, skip
-
Constructor Details
-
TeeReader
Constructs a TeeReader that proxies the givenReaderand copies all read characters to the givenWriter. The given writer will not be closed when this reader gets closed.- Parameters:
input- reader to be proxiedbranch- writer that will receive a copy of all characters read
-
TeeReader
Constructs a TeeReader that proxies the givenReaderand copies all read characters to the givenWriter. The given writer will be closed when this reader gets closed if the closeBranch parameter istrue.- Parameters:
input- reader to be proxiedbranch- writer that will receive a copy of all characters readcloseBranch- flag for closing also the writer when this reader is closed
-
-
Method Details
-
close
Closes the proxied reader and, if so configured, the associated writer. An exception thrown from the reader will not prevent closing of the writer.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classProxyReader- Throws:
IOException- if either the reader or writer could not be closed
-
read
Reads a single character from the proxied reader and writes it to the associated writer.- Overrides:
readin classProxyReader- Returns:
- next character from the reader, or -1 if the reader has ended
- Throws:
IOException- if the reader could not be read (or written)
-
read
Reads characters from the proxied reader and writes the read characters to the associated writer.- Overrides:
readin classProxyReader- Parameters:
chr- character buffer- Returns:
- number of characters read, or -1 if the reader has ended
- Throws:
IOException- if the reader could not be read (or written)
-
read
Reads characters from the proxied reader and writes the read characters to the associated writer.- Overrides:
readin classProxyReader- Parameters:
chr- character bufferst- start offset within the bufferend- maximum number of characters to read- Returns:
- number of characters read, or -1 if the reader has ended
- Throws:
IOException- if the reader could not be read (or written)
-
read
Reads characters from the proxied reader and writes the read characters to the associated writer.- Specified by:
readin interfaceReadable- Overrides:
readin classProxyReader- Parameters:
target- character buffer- Returns:
- number of characters read, or -1 if the reader has ended
- Throws:
IOException- if the reader could not be read (or written)
-