org.apache.commons.io.input

Class CountingInputStream


public class CountingInputStream
extends ProxyInputStream

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.

Version:
$Id: CountingInputStream.java 471628 2006-11-06 04:06:45Z bayard $
Author:
Marcelo Liberato

Field Summary

private long
count
The count of bytes that have passed.

Constructor Summary

CountingInputStream(InputStream in)
Constructs a new CountingInputStream.

Method Summary

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.

Methods inherited from class org.apache.commons.io.input.ProxyInputStream

available, close, mark, markSupported, read, read, read, reset, skip

Field Details

count

private long count
The count of bytes that have passed.

Constructor Details

CountingInputStream

public CountingInputStream(InputStream in)
Constructs a new CountingInputStream.
Parameters:
in - the InputStream to delegate to

Method Details

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.

Returns:
the number of bytes accumulated
Since:
Commons IO 1.3

getCount

public int getCount()
Returns:
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.
Overrides:
read in interface ProxyInputStream
Returns:
the byte read, -1 if end of stream
See Also:
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.
Overrides:
read in interface ProxyInputStream
Parameters:
b - the buffer into which the data is read, not null
Returns:
the total number of bytes read into the buffer, -1 if end of stream
See Also:
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.
Overrides:
read in interface ProxyInputStream
Parameters:
b - the buffer into which the data is read, not null
off - the start offset in the buffer
len - the maximum number of bytes to read
Returns:
the total number of bytes read into the buffer, -1 if end of stream
See Also:
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.

Returns:
the count previous to resetting
Since:
Commons IO 1.3

resetCount

public int resetCount()
Returns:
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.
Overrides:
skip in interface ProxyInputStream
Parameters:
length - the number of bytes to skip
Returns:
the actual number of bytes skipped
See Also:
java.io.InputStream.skip(long)

Copyright (c) 2002-2009 Apache Software Foundation