org.apache.commons.io.input
public class NullReader extends Reader
This implementation provides a light weight object for testing with an {@link Reader} where the contents don't matter.
One use case would be for testing the handling of large {@link Reader} as it can emulate that scenario without the overhead of actually processing large numbers of characters - significantly speeding up test execution times.
This implementation returns a space from the method that
reads a character and leaves the array unchanged in the read
methods that are passed a character array.
If alternative data is required the processChar()
and
processChars()
methods can be implemented to generate
data, for example:
public class TestReader extends NullReader { public TestReader(int size) { super(size); } protected char processChar() { return ... // return required value here } protected void processChars(char[] chars, int offset, int length) { for (int i = offset; i < length; i++) { chars[i] = ... // set array value here } } }
Since: Commons IO 1.3
Version: $Revision: 463529 $
Field Summary | |
---|---|
boolean | eof |
long | mark |
boolean | markSupported |
long | position |
long | readlimit |
long | size |
boolean | throwEofException |
Constructor Summary | |
---|---|
NullReader(long size)
Create a {@link Reader} that emulates a specified size
which supports marking and does not throw EOFException.
| |
NullReader(long size, boolean markSupported, boolean throwEofException)
Create a {@link Reader} that emulates a specified
size with option settings.
|
Method Summary | |
---|---|
void | close()
Close this Reader - resets the internal state to
the initial values.
|
int | doEndOfFile()
Handle End of File.
|
long | getPosition()
Return the current position.
|
long | getSize()
Return the size this {@link Reader} emulates.
|
void | mark(int readlimit)
Mark the current position.
|
boolean | markSupported()
Indicates whether mark is supported.
|
protected int | processChar()
Return a character value for the read() method.
|
protected void | processChars(char[] chars, int offset, int length)
Process the characters for the read(char[], offset, length)
method.
|
int | read()
Read a character.
|
int | read(char[] chars)
Read some characters into the specified array.
|
int | read(char[] chars, int offset, int length)
Read the specified number characters into an array.
|
void | reset()
Reset the stream to the point when mark was last called.
|
long | skip(long numberOfChars)
Skip a specified number of characters.
|
Parameters: size The size of the reader to emulate.
Parameters: size The size of the reader to emulate. markSupported Whether this instance will support
the mark()
functionality. throwEofException Whether this implementation
will throw an {@link EOFException} or return -1 when the
end of file is reached.
Throws: IOException If an error occurs.
Returns: -1
if throwEofException
is
set to false
Throws: EOFException if throwEofException
is set
to true
.
Returns: the current position.
Returns: The size of the reader to emulate.
Parameters: readlimit The number of characters before this marked position is invalid.
Throws: UnsupportedOperationException if mark is not supported.
Returns: Whether mark is supported or not.
read()
method.
This implementation returns zero.
Returns: This implementation always returns zero.
read(char[], offset, length)
method.
This implementation leaves the character array unchanged.
Parameters: chars The character array offset The offset to start at. length The number of characters.
Returns: Either The character value returned by processChar()
or -1
if the end of file has been reached and
throwEofException
is set to false
.
Throws: EOFException if the end of file is reached and
throwEofException
is set to true
. IOException if trying to read past the end of file.
Parameters: chars The character array to read into
Returns: The number of characters read or -1
if the end of file has been reached and
throwEofException
is set to false
.
Throws: EOFException if the end of file is reached and
throwEofException
is set to true
. IOException if trying to read past the end of file.
Parameters: chars The character array to read into. offset The offset to start reading characters into. length The number of characters to read.
Returns: The number of characters read or -1
if the end of file has been reached and
throwEofException
is set to false
.
Throws: EOFException if the end of file is reached and
throwEofException
is set to true
. IOException if trying to read past the end of file.
Throws: UnsupportedOperationException if mark is not supported. IOException If no position has been marked or the read limit has been exceed since the last position was marked.
Parameters: numberOfChars The number of characters to skip.
Returns: The number of characters skipped or -1
if the end of file has been reached and
throwEofException
is set to false
.
Throws: EOFException if the end of file is reached and
throwEofException
is set to true
. IOException if trying to read past the end of file.