DeferredFileOutputStreampublic abstract class ThresholdingOutputStream extends java.io.OutputStream
This class overrides all OutputStream methods. However, these
overrides ultimately call the corresponding methods in the underlying output
stream implementation.
NOTE: This implementation may trigger the event before the threshold is actually reached, since it triggers when a pending write operation would cause the threshold to be exceeded.
| Constructor | Description |
|---|---|
ThresholdingOutputStream(int threshold) |
Constructs an instance of this class which will trigger an event at the
specified threshold.
|
| Modifier and Type | Method | Description |
|---|---|---|
protected void |
checkThreshold(int count) |
Checks to see if writing the specified number of bytes would cause the
configured threshold to be exceeded.
|
void |
close() |
Closes this output stream and releases any system resources associated
with this stream.
|
void |
flush() |
Flushes this output stream and forces any buffered output bytes to be
written out.
|
long |
getByteCount() |
Returns the number of bytes that have been written to this output stream.
|
protected abstract java.io.OutputStream |
getStream() |
Returns the underlying output stream, to which the corresponding
OutputStream methods in this class will ultimately delegate. |
int |
getThreshold() |
Returns the threshold, in bytes, at which an event will be triggered.
|
boolean |
isThresholdExceeded() |
Determines whether or not the configured threshold has been exceeded for
this output stream.
|
protected void |
resetByteCount() |
Resets the byteCount to zero.
|
protected void |
setByteCount(long count) |
Sets the byteCount to count.
|
protected abstract void |
thresholdReached() |
Indicates that the configured threshold has been reached, and that a
subclass should take whatever action necessary on this event.
|
void |
write(byte[] b) |
Writes
b.length bytes from the specified byte array to this
output stream. |
void |
write(byte[] b,
int off,
int len) |
Writes
len bytes from the specified byte array starting at
offset off to this output stream. |
void |
write(int b) |
Writes the specified byte to this output stream.
|
public ThresholdingOutputStream(int threshold)
threshold - The number of bytes at which to trigger an event.public void write(int b) throws java.io.IOException
write in class java.io.OutputStreamb - The byte to be written.java.io.IOException - if an error occurs.public void write(byte[] b) throws java.io.IOException
b.length bytes from the specified byte array to this
output stream.write in class java.io.OutputStreamb - The array of bytes to be written.java.io.IOException - if an error occurs.public void write(byte[] b, int off, int len) throws java.io.IOException
len bytes from the specified byte array starting at
offset off to this output stream.write in class java.io.OutputStreamb - The byte array from which the data will be written.off - The start offset in the byte array.len - The number of bytes to write.java.io.IOException - if an error occurs.public void flush() throws java.io.IOException
flush in class java.io.OutputStreamjava.io.IOException - if an error occurs.public void close() throws java.io.IOException
close in class java.io.OutputStreamjava.io.IOException - if an error occurs.public int getThreshold()
public long getByteCount()
public boolean isThresholdExceeded()
true if the threshold has been reached;
false otherwise.protected void checkThreshold(int count) throws java.io.IOException
count - The number of bytes about to be written to the underlying
output stream.java.io.IOException - if an error occurs.protected void resetByteCount()
thresholdReached() if you want the event to be triggered again.protected void setByteCount(long count)
count - The number of bytes that have already been written to the
output streamprotected abstract java.io.OutputStream getStream() throws java.io.IOException
OutputStream methods in this class will ultimately delegate.java.io.IOException - if an error occurs.protected abstract void thresholdReached() throws java.io.IOException
java.io.IOException - if an error occurs.