public class CountingInputStream extends ProxyInputStream
A typical use case would be during debugging, to ensure that data is being read as expected.
in
Constructor and Description |
---|
CountingInputStream(InputStream in)
Constructs a new CountingInputStream.
|
Modifier and Type | Method and Description |
---|---|
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.
|
String |
toString() |
afterRead, available, beforeRead, close, handleIOException, mark, markSupported, reset
public CountingInputStream(InputStream in)
in
- the InputStream to delegate topublic int read(byte[] b) throws IOException
read
in class ProxyInputStream
b
- the buffer into which the data is read, not nullIOException
- if an I/O error occursInputStream.read(byte[])
public int read(byte[] b, int off, int len) throws IOException
read
in class ProxyInputStream
b
- the buffer into which the data is read, not nulloff
- the start offset in the bufferlen
- the maximum number of bytes to readIOException
- if an I/O error occursInputStream.read(byte[], int, int)
public int read() throws IOException
read
in class ProxyInputStream
IOException
- if an I/O error occursInputStream.read()
public long skip(long length) throws IOException
skip
in class ProxyInputStream
length
- the number of bytes to skipIOException
- if an I/O error occursInputStream.skip(long)
public int getCount()
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
.
ArithmeticException
- if the byte count is too largepublic int resetCount()
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
.
ArithmeticException
- if the byte count is too largepublic long getByteCount()
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.
public long resetByteCount()
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.
Copyright © 2007–2022 The Apache Software Foundation. All rights reserved.