org.apache.commons.io.output
Class CountingOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by org.apache.commons.io.output.ProxyOutputStream
              extended by org.apache.commons.io.output.CountingOutputStream
All Implemented Interfaces:
Closeable, Flushable

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.

Version:
$Id: CountingOutputStream.java 471628 2006-11-06 04:06:45Z bayard $

Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
CountingOutputStream(OutputStream out)
          Constructs a new CountingOutputStream.
 
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.
 long resetByteCount()
          Set the byte count back to 0.
 int resetCount()
          Set the byte count back to 0.
 void write(byte[] b)
          Writes the contents of the specified byte array to this output stream keeping count of the number of bytes written.
 void write(byte[] b, int off, int len)
          Writes a portion of the specified byte array to this output stream keeping count of the number of bytes written.
 void write(int b)
          Writes a single byte to the output stream adding to the count of the number of bytes written.
 
Methods inherited from class org.apache.commons.io.output.ProxyOutputStream
close, flush
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CountingOutputStream

public CountingOutputStream(OutputStream out)
Constructs a new CountingOutputStream.

Parameters:
out - the OutputStream to write to
Method Detail

write

public void write(byte[] b)
           throws IOException
Writes the contents of the specified byte array to this output stream keeping count of the number of bytes written.

Overrides:
write in class ProxyOutputStream
Parameters:
b - the bytes to write, not null
Throws:
IOException - if an I/O error occurs
See Also:
OutputStream.write(byte[])

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
Writes a portion of the specified byte array to this output stream keeping count of the number of bytes written.

Overrides:
write in class ProxyOutputStream
Parameters:
b - the bytes to write, not null
off - the start offset in the buffer
len - the maximum number of bytes to write
Throws:
IOException - if an I/O error occurs
See Also:
OutputStream.write(byte[], int, int)

write

public void write(int b)
           throws IOException
Writes a single byte to the output stream adding to the count of the number of bytes written.

Overrides:
write in class ProxyOutputStream
Parameters:
b - the byte to write
Throws:
IOException - if an I/O error occurs
See Also:
OutputStream.write(int)

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(). 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:
Commons IO 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:
Commons IO 1.3


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