org.apache.commons.io.input
public class NullInputStream extends InputStream
This implementation provides a light weight object for testing with an {@link InputStream} where the contents don't matter.
One use case would be for testing the handling of large {@link InputStream} as it can emulate that scenario without the overhead of actually processing large numbers of bytes - significantly speeding up test execution times.
This implementation returns zero from the method that
reads a byte and leaves the array unchanged in the read
methods that are passed a byte array.
If alternative data is required the processByte() and
processBytes() methods can be implemented to generate
data, for example:
public class TestInputStream extends NullInputStream {
public TestInputStream(int size) {
super(size);
}
protected int processByte() {
return ... // return required value here
}
protected void processBytes(byte[] bytes, int offset, int length) {
for (int i = offset; i < length; i++) {
bytes[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 | |
|---|---|
| NullInputStream(long size)
Create an {@link InputStream} that emulates a specified size
which supports marking and does not throw EOFException.
| |
| NullInputStream(long size, boolean markSupported, boolean throwEofException)
Create an {@link InputStream} that emulates a specified
size with option settings.
| |
| Method Summary | |
|---|---|
| int | available()
Return the number of bytes that can be read.
|
| void | close()
Close this input stream - 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 InputStream} emulates.
|
| void | mark(int readlimit)
Mark the current position.
|
| boolean | markSupported()
Indicates whether mark is supported.
|
| protected int | processByte()
Return a byte value for the read() method.
|
| protected void | processBytes(byte[] bytes, int offset, int length)
Process the bytes for the read(byte[], offset, length)
method.
|
| int | read()
Read a byte.
|
| int | read(byte[] bytes)
Read some bytes into the specified array.
|
| int | read(byte[] bytes, int offset, int length)
Read the specified number bytes into an array.
|
| void | reset()
Reset the stream to the point when mark was last called.
|
| long | skip(long numberOfBytes)
Skip a specified number of bytes.
|
Parameters: size The size of the input stream to emulate.
Parameters: size The size of the input stream 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.
Returns: The number of bytes that can be read.
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 input stream to emulate.
Parameters: readlimit The number of bytes 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(byte[], offset, length)
method.
This implementation leaves the byte array unchanged.
Parameters: bytes The byte array offset The offset to start at. length The number of bytes.
Returns: Either The byte value returned by processByte()
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: bytes The byte array to read into
Returns: The number of bytes 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: bytes The byte array to read into. offset The offset to start reading bytes into. length The number of bytes to read.
Returns: The number of bytes 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: numberOfBytes The number of bytes to skip.
Returns: The number of bytes 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.