Class CountingOutputStream

All Implemented Interfaces:
Closeable, Flushable, AutoCloseable

A decorating output stream that counts the number of bytes that have passed through.

A typical use case would be during debugging, to ensure that data is being written as expected.

  • Constructor Details Link icon

  • Method Details Link icon

    • beforeWrite Link icon

      protected void beforeWrite(int n)
      Updates the count with the number of bytes that are being written.
      Overrides:
      beforeWrite in class ProxyOutputStream
      Parameters:
      n - number of bytes to be written to the stream
      Since:
      2.0
    • getByteCount Link icon

      public long getByteCount()
      The number of bytes that have passed through this stream.

      NOTE: This method is an alternative for getCount(). It 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 Link icon

      public int getCount()
      Gets 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
    • resetByteCount Link icon

      public long resetByteCount()
      Sets the byte count back to 0.

      NOTE: This method is an alternative for resetCount(). It 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 Link icon

      public int resetCount()
      Sets 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