Class RepeatableReader
- All Implemented Interfaces:
Closeable,Serializable,AutoCloseable,Readable,Repeatable
RepeatableReader adds functionality to another reader,
the ability to read repeatedly.
By repeatable-read we mean, after close(), the next invocation of
read(char[], int, int) will re-open the reader.
RepeatableInputStream actually creates a temporary space
to buffer the content, so it can be re-opened again after closed.
Notice that the temporary space (a.k.a., the buffered reader)
is never closed until garbage-collected.
If the content size of the given reader is smaller than
the value specified in the system property called
"org.zkoss.io.memoryLimitSize", the content will be buffered in
the memory. If the size exceeds, the content will be buffered in
a temporary file. By default, it is 512KB.
Note: the maximal value is Integer.MAX_VALUE
If the content size of the given reader is larger than
the value specified in the system property called
"org.zkoss.io.bufferLimitSize", the content won't be buffered,
and it means the read is not repeatable. By default, it is 20MB.
Note: the maximal value is Integer.MAX_VALUE
- Since:
- 3.0.4
- Author:
- tomyeh
- See Also:
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Closes the current access, and the next call ofread(char[], int, int)re-opens the buffered reader.protected voidfinalize()static ReadergetInstance(File file) Returns a reader to read a file, encoded in UTF-8, that can be read repeatedly.static ReadergetInstance(File file, String charset) Returns a reader to read a file that can be read repeatedly.static ReadergetInstance(Reader rd) Returns a reader that can be read repeatedly, or null if the given reader is null.static ReadergetInstance(String filename) Returns a reader to read a file, encoded in UTF-8, that can be read repeatedly.static ReadergetInstance(String filename, String charset) Returns a reader to read a file that can be read repeatedly.static ReadergetInstance(URL url) Returns a reader to read the resource of the specified URL, encoded in UTF-8.static ReadergetInstance(URL url, String charset) Returns a reader to read the resource of the specified URL.intread(char[] cbuf, int off, int len) Methods inherited from class java.io.Reader
mark, markSupported, nullReader, read, read, read, ready, reset, skip, transferTo
-
Method Details
-
getInstance
Returns a reader that can be read repeatedly, or null if the given reader is null. Note: the returned reader encapsulates the given reader, rd (a.k.a., the buffered reader) to adds the functionality to re-opens the reader onceclose()is called.By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Use this method instead of instantiating
RepeatableReaderwith the constructor.- See Also:
-
getInstance
Returns a reader to read a file that can be read repeatedly. Note: it assumes the file is text (rather than binary).By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Note: it is efficient since we don't have to buffer the content of the file to make it repeatable-read.
- Parameters:
charset- the charset. If null, "UTF-8" is assumed.- Throws:
IllegalArgumentException- if file is null.FileNotFoundException- Since:
- 3.0.8
- See Also:
-
getInstance
Returns a reader to read a file, encoded in UTF-8, that can be read repeatedly. Note: it assumes the file is text (rather than binary).By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Note: it is efficient since we don't have to buffer the content of the file to make it repeatable-read.
- Throws:
IllegalArgumentException- if file is null.FileNotFoundException- See Also:
-
getInstance
Returns a reader to read a file that can be read repeatedly. Note: it assumes the file is text (rather than binary).By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Note: it is efficient since we don't have to buffer the content of the file to make it repeatable-read.
- Parameters:
filename- the file namecharset- the charset. If null, "UTF-8" is assumed.- Throws:
IllegalArgumentException- if file is null.FileNotFoundException- if file is not found.- Since:
- 3.0.8
- See Also:
-
getInstance
Returns a reader to read a file, encoded in UTF-8, that can be read repeatedly. Note: it assumes the file is text (rather than binary).By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Note: it is efficient since we don't have to buffer the content of the file to make it repeatable-read.
- Parameters:
filename- the file name- Throws:
IllegalArgumentException- if file is null.FileNotFoundException- if file is not found.- See Also:
-
getInstance
Returns a reader to read the resource of the specified URL. The reader can be read repeatedly. Note: it assumes the resource is text (rather than binary).By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Note: it is efficient since we don't have to buffer the content of the file to make it repeatable-read.
- Parameters:
charset- the charset. If null, "UTF-8" is assumed.- Throws:
IllegalArgumentException- if file is null.- Since:
- 3.0.8
- See Also:
-
getInstance
Returns a reader to read the resource of the specified URL, encoded in UTF-8. The reader can be read repeatedly. Note: it assumes the resource is text (rather than binary).By repeatable-read we mean, after
close(), the next invocation ofread(char[], int, int)will re-open the reader.Note: it is efficient since we don't have to buffer the content of the file to make it repeatable-read.
- Throws:
IllegalArgumentException- if file is null.- See Also:
-
read
- Specified by:
readin classReader- Throws:
IOException
-
close
Closes the current access, and the next call ofread(char[], int, int)re-opens the buffered reader.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein classReader- Throws:
IOException
-
finalize
-