Class MeteredStream

  • All Implemented Interfaces:
    Closeable, Flushable, AutoCloseable

    public final class MeteredStream
    extends OutputStream
    A metered stream is a subclass of OutputStream that (a) forwards all its output to a target stream (b) keeps track of how many bytes have been written.
    • Constructor Detail

      • MeteredStream

        public MeteredStream​(OutputStream out,
                             long written)
        Create the stream wrapped around the specified output stream.
        Parameters:
        out - The target output stream to keep track of.
        written - The number of bytes written to the stream.
    • Method Detail

      • write

        public void write​(int b)
                   throws IOException
        Write the specified byte to the stream.
        Specified by:
        write in class OutputStream
        Parameters:
        b - The value to be written to the stream.
        Throws:
        IOException - if the write failed.
      • write

        public void write​(byte[] buff)
                   throws IOException
        Write the specified buffer to the stream.
        Overrides:
        write in class OutputStream
        Parameters:
        buff - The value to be written to the stream.
        Throws:
        IOException - if the write failed.
      • write

        public void write​(byte[] buff,
                          int off,
                          int len)
                   throws IOException
        Write the specified buffer to the stream.
        Overrides:
        write in class OutputStream
        Parameters:
        buff - The value to be written to the stream.
        off - The offset to write from.
        len - The length of the buffer to write.
        Throws:
        IOException - if the write failed.
      • getBytesWritten

        public long getBytesWritten()
        Returns the number of bytes written in this stream.
        Returns:
        the number of bytes