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
longcount
The count of bytes that have passed.
Constructor Summary
CountingInputStream(InputStream in)
Constructs a new CountingInputStream.
Method Summary
longgetByteCount()
The number of bytes that have passed through this stream.
intgetCount()
The number of bytes that have passed through this stream.
intread(byte[] b)
Reads a number of bytes into the byte array, keeping count of the number read.
intread(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.
intread()
Reads the next byte of data adding to the count of bytes received if a byte is successfully read.
longresetByteCount()
Set the byte count back to 0.
intresetCount()
Set the byte count back to 0.
longskip(long length)
Skips the stream over the specified number of bytes, adding the skipped amount to the count.

Field Detail

count

private long count
The count of bytes that have passed.

Constructor Detail

CountingInputStream

public CountingInputStream(InputStream in)
Constructs a new CountingInputStream.

Parameters: in the InputStream to delegate to

Method Detail

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()
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.

Returns: the number of bytes accumulated

Throws: ArithmeticException if the byte count is too large

read

public int read(byte[] b)
Reads a number of bytes into the byte array, keeping count of the number read.

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

Throws: IOException if an I/O error occurs

See Also: java.io.InputStream#read(byte[])

read

public 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.

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

Throws: IOException if an I/O error occurs

See Also: java.io.InputStream#read(byte[], int, int)

read

public int read()
Reads the next byte of data adding to the count of bytes received if a byte is successfully read.

Returns: the byte read, -1 if end of stream

Throws: IOException if an I/O error occurs

See Also: java.io.InputStream#read()

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()
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.

Returns: the count previous to resetting

Throws: ArithmeticException if the byte count is too large

skip

public long skip(long length)
Skips the stream over the specified number of bytes, adding the skipped amount to the count.

Parameters: length the number of bytes to skip

Returns: the actual number of bytes skipped

Throws: IOException if an I/O error occurs

See Also: java.io.InputStream#skip(long)

Copyright (c) 2002-2011 Apache Software Foundation