Package org.apache.commons.io.input

# Class CountingInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
org.apache.commons.io.input.ProxyInputStream
org.apache.commons.io.input.CountingInputStream

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

Direct Known Subclasses:
  `ChecksumInputStream`, `ThrottledInputStream`

@Deprecated public class CountingInputStream extends ProxyInputStream
Deprecated.
Use `BoundedInputStream` (unbounded by default).
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.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.io.input.ProxyInputStream

  `ProxyInputStream.AbstractBuilder<T,B extends AbstractStreamBuilder<T,B>>`

- ## Field Summary

  ### Fields inherited from class java.io.FilterInputStream

  `in`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `CountingInputStream(InputStream in)`
  Deprecated.
  Constructs a new CountingInputStream.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected void`
  `afterRead(int n)`
  Deprecated.
  Adds the number of read bytes to the count.
  `long`
  `getByteCount()`
  Deprecated.
  Gets number of bytes that have passed through this stream.
  `int`
  `getCount()`
  Deprecated.
  Use `getByteCount()`.
  `long`
  `resetByteCount()`
  Deprecated.
  Resets the byte count back to 0.
  `int`
  `resetCount()`
  Deprecated.
  Use `resetByteCount()`.
  `long`
  `skip(long length)`
  Deprecated.
  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, beforeRead, close, handleIOException, mark, markSupported, read, read, read, reset, setReference, unwrap`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### CountingInputStream

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

- ## Method Details

  - ### afterRead

    protected void afterRead(int n) throws IOException
    Deprecated.
    Adds the number of read bytes to the count.
    Overrides:
      `afterRead` in class `ProxyInputStream`
    Parameters:
      `n` - number of bytes read, or -1 if no more bytes are available
    Throws:
      `IOException` - Not thrown here but subclasses may throw.
    Since:
      2.0

  - ### getByteCount

    public long getByteCount()
    Deprecated.
    Gets 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:
      1.3

  - ### getCount

    @Deprecated public int getCount()
    Deprecated.
    Use `getByteCount()`.
    Gets number of bytes that have passed through this stream.

    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

  - ### resetByteCount

    public long resetByteCount()
    Deprecated.
    Resets 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:
      1.3

  - ### resetCount

    @Deprecated public int resetCount()
    Deprecated.
    Use `resetByteCount()`.
    Resets the byte count back to 0.

    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) throws IOException
    Deprecated.
    Skips the stream over the specified number of bytes, adding the skipped amount to the count.
    Overrides:
      `skip` in class `ProxyInputStream`
    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:
      - `InputStream.skip(long)`