public class OutputStreamWithCloseAction
extends java.io.OutputStream
OutputStream
wraps another OutputStream
. It forwards all
write requests to this inner OutputStream
. The only difference lies
in its close()
function which runs a given CloseAction
just
after having called close()
on the inner
OutputStream
successfully.CloseAction
Constructor and Description |
---|
OutputStreamWithCloseAction(java.io.OutputStream output,
CloseAction action)
Create an
OutputStreamWithCloseAction instance. |
Modifier and Type | Method and Description |
---|---|
void |
close() |
void |
flush() |
void |
write(byte[] b) |
void |
write(byte[] b,
int off,
int len) |
void |
write(int b) |
public OutputStreamWithCloseAction(java.io.OutputStream output, CloseAction action) throws java.lang.NullPointerException
OutputStreamWithCloseAction
instance.output
- The OutputStream
to wrap.
MANDATORYaction
- The action(s) to run after the given OutputStream
has been successfully closed.
OPTIONALjava.lang.NullPointerException
- If the given OutputStream
is missing.public void write(byte[] b) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void write(byte[] b, int off, int len) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void write(int b) throws java.io.IOException
write
in class java.io.OutputStream
java.io.IOException
public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in class java.io.OutputStream
java.io.IOException
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in class java.io.OutputStream
java.io.IOException