java.io.Closeable
, java.io.Flushable
, java.lang.AutoCloseable
public class CountingOutputStream extends ProxyOutputStream
A typical use case would be during debugging, to ensure that data is being written as expected.
Modifier and Type | Field | Description |
---|---|---|
private long |
count |
The count of bytes that have passed.
|
Constructor | Description |
---|---|
CountingOutputStream(java.io.OutputStream out) |
Constructs a new CountingOutputStream.
|
Modifier and Type | Method | Description |
---|---|---|
protected void |
beforeWrite(int n) |
Updates the count with the number of bytes that are being written.
|
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.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
afterWrite, close, flush, handleIOException, write, write, write
public CountingOutputStream(java.io.OutputStream out)
out
- the OutputStream to write toprotected void beforeWrite(int n)
beforeWrite
in class ProxyOutputStream
n
- number of bytes to be written to the streampublic int getCount()
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
.
java.lang.ArithmeticException
- if the byte count is too largepublic int resetCount()
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
.
java.lang.ArithmeticException
- if the byte count is too largepublic long getByteCount()
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.
public long resetByteCount()
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.
Copyright (c) 2002-2017 Apache Software Foundation