Class CountingInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- org.apache.tika.io.ProxyInputStream
-
- org.apache.tika.io.CountingInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
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.
- Since:
- Apache Tika 0.4, copied from Commons IO 1.4
-
-
Constructor Summary
Constructors Constructor Description CountingInputStream(java.io.InputStream in)
Constructs a new CountingInputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.java.lang.String
toString()
-
Methods inherited from class org.apache.tika.io.ProxyInputStream
available, close, mark, markSupported, reset
-
-
-
-
Method Detail
-
read
public int read(byte[] b) throws java.io.IOException
Reads a number of bytes into the byte array, keeping count of the number read.- Overrides:
read
in classProxyInputStream
- 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:
java.io.IOException
- if an I/O error occurs- See Also:
InputStream.read(byte[])
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
Reads a number of bytes into the byte array at a specific offset, keeping count of the number read.- Overrides:
read
in classProxyInputStream
- Parameters:
b
- the buffer into which the data is read, not nulloff
- the start offset in the bufferlen
- the maximum number of bytes to read- Returns:
- the total number of bytes read into the buffer, -1 if end of stream
- Throws:
java.io.IOException
- if an I/O error occurs- See Also:
InputStream.read(byte[], int, int)
-
read
public int read() throws java.io.IOException
Reads the next byte of data adding to the count of bytes received if a byte is successfully read.- Overrides:
read
in classProxyInputStream
- Returns:
- the byte read, -1 if end of stream
- Throws:
java.io.IOException
- if an I/O error occurs- See Also:
InputStream.read()
-
skip
public long skip(long length) throws java.io.IOException
Skips the stream over the specified number of bytes, adding the skipped amount to the count.- Overrides:
skip
in classProxyInputStream
- Parameters:
length
- the number of bytes to skip- Returns:
- the actual number of bytes skipped
- Throws:
java.io.IOException
- if an I/O error occurs- See Also:
InputStream.skip(long)
-
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
. SeegetByteCount()
for a method using along
.- Returns:
- the number of bytes accumulated
- Throws:
java.lang.ArithmeticException
- if the byte count is too large
-
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
. SeeresetByteCount()
for a method using along
.- Returns:
- the count previous to resetting
- Throws:
java.lang.ArithmeticException
- if the byte count is too large
-
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
-
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
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-