org.apache.commons.io.input
Class CountingInputStream
public class CountingInputStream
A decorating input stream that counts the number of bytes that have passed
through the stream so far.
A typical use case would be during debugging, to ensure that data is being
read as expected.
$Id: CountingInputStream.java 471628 2006-11-06 04:06:45Z bayard $private long | count - The count of bytes that have passed.
|
long | getByteCount() - The number of bytes that have passed through this stream.
|
int | getCount() - The number of bytes that have passed through this stream.
|
int | read() - Reads the next byte of data adding to the count of bytes received
if a byte is successfully read.
|
int | read(byte[] b) - Reads a number of bytes into the byte array, keeping count of the
number read.
|
int | read(byte[] b, int off, int len) - Reads a number of bytes into the byte array at a specific offset,
keeping count of the number read.
|
long | resetByteCount() - Set the byte count back to 0.
|
int | resetCount() - Set the byte count back to 0.
|
long | skip(long length) - Skips the stream over the specified number of bytes, adding the skipped
amount to the count.
|
count
private long count
The count of bytes that have passed.
CountingInputStream
public CountingInputStream(InputStream in)
Constructs a new CountingInputStream.
in
- the InputStream to delegate to
getByteCount
public long getByteCount()
The number of bytes that have passed through this stream.
NOTE: This method is an alternative for
getCount()
and was added because that method returns an integer which will
result in incorrect count for files over 2GB.
- the number of bytes accumulated
getCount
public int getCount()
The number of bytes that have passed through this stream.
NOTE: From v1.3 this method throws an ArithmeticException if the
count is greater than can be expressed by an
int
.
See
getByteCount()
for a method using a
long
.
- the number of bytes accumulated
read
public int read()
throws IOException
Reads the next byte of data adding to the count of bytes received
if a byte is successfully read.
- read in interface ProxyInputStream
- the byte read, -1 if end of stream
java.io.InputStream.read()
read
public int read(byte[] b)
throws IOException
Reads a number of bytes into the byte array, keeping count of the
number read.
- read in interface ProxyInputStream
b
- the buffer into which the data is read, not null
- the total number of bytes read into the buffer, -1 if end of stream
java.io.InputStream.read(byte[])
read
public int read(byte[] b,
int off,
int len)
throws IOException
Reads a number of bytes into the byte array at a specific offset,
keeping count of the number read.
- read in interface ProxyInputStream
b
- the buffer into which the data is read, not nulloff
- the start offset in the bufferlen
- the maximum number of bytes to read
- the total number of bytes read into the buffer, -1 if end of stream
java.io.InputStream.read(byte[], int, int)
resetByteCount
public long resetByteCount()
Set the byte count back to 0.
NOTE: This method is an alternative for
resetCount()
and was added because that method returns an integer which will
result in incorrect count for files over 2GB.
- the count previous to resetting
resetCount
public int resetCount()
Set the byte count back to 0.
NOTE: From v1.3 this method throws an ArithmeticException if the
count is greater than can be expressed by an
int
.
See
resetByteCount()
for a method using a
long
.
- the count previous to resetting
skip
public long skip(long length)
throws IOException
Skips the stream over the specified number of bytes, adding the skipped
amount to the count.
- skip in interface ProxyInputStream
length
- the number of bytes to skip
- the actual number of bytes skipped
java.io.InputStream.skip(long)
Copyright (c) 2002-2009 Apache Software Foundation