Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

    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

Fields inherited from class java.io.FilterInputStream
`in`

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, reset`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### CountingInputStream

    public CountingInputStream(InputStream in)

  Constructs a new CountingInputStream.

  Parameters:
    `in` - the InputStream to delegate to

Method Detail

### 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 class `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
  Throws:
    `IOException` - if an I/O error occurs
  See Also:
    `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 class `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
  Throws:
    `IOException` - if an I/O error occurs
  See Also:
    `InputStream.read(byte[], int, int)`

### 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 class `ProxyInputStream`
  Returns:
    the byte read, -1 if end of stream
  Throws:
    `IOException` - if an I/O error occurs
  See Also:
    `InputStream.read()`

### 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 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)`

### 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

### 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

### 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2008 The Apache Software Foundation. All Rights Reserved.