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
ConstructorDescription -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Closes the proxied reader and, if so configured, the associated writer.int
read()
Reads a single character from the proxied reader and writes it to the associated writer.int
read
(char[] chr) Reads characters from the proxied reader and writes the read characters to the associated writer.int
read
(char[] chr, int st, int end) Reads characters from the proxied reader and writes the read characters to the associated writer.int
read
(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 givenReader
and 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 givenReader
and 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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Overrides:
close
in 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:
read
in 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:
read
in 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:
read
in 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:
read
in interfaceReadable
- Overrides:
read
in 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)
-