Class CountingOutputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable

    public class CountingOutputStream
    extends ProxyOutputStream
    A decorating output 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 written as expected.

    • Constructor Summary

      Constructors 
      Constructor Description
      CountingOutputStream​(java.io.OutputStream out)
      Constructs a new CountingOutputStream.
    • 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.
      long resetByteCount()
      Set the byte count back to 0.
      int resetCount()
      Set the byte count back to 0.
      • Methods inherited from class java.io.OutputStream

        nullOutputStream
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CountingOutputStream

        public CountingOutputStream​(java.io.OutputStream out)
        Constructs a new CountingOutputStream.
        Parameters:
        out - the OutputStream to write to
    • Method Detail

      • 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:
        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. See resetByteCount() for a method using a long.

        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(). 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
      • resetByteCount

        public long resetByteCount()
        Set 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