Package org.apache.commons.io.output
Class ProxyOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- java.io.FilterOutputStream
-
- org.apache.commons.io.output.ProxyOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
- Direct Known Subclasses:
CloseShieldOutputStream,CountingOutputStream,TaggedOutputStream,TeeOutputStream
public class ProxyOutputStream extends java.io.FilterOutputStreamA Proxy stream which acts as expected, that is it passes the method calls on to the proxied stream and doesn't change which methods are being called. It is an alternative base class to FilterOutputStream to increase reusability.See the protected methods for ways in which a subclass can easily decorate a stream with custom pre-, post- or error processing functionality.
-
-
Constructor Summary
Constructors Constructor Description ProxyOutputStream(java.io.OutputStream proxy)Constructs a new ProxyOutputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidafterWrite(int n)Invoked by the write methods after the proxied call has returned successfully.protected voidbeforeWrite(int n)Invoked by the write methods before the call is proxied.voidclose()Invokes the delegate'sclose()method.voidflush()Invokes the delegate'sflush()method.protected voidhandleIOException(java.io.IOException e)Handle any IOExceptions thrown.voidwrite(byte[] bts)Invokes the delegate'swrite(byte[])method.voidwrite(byte[] bts, int st, int end)Invokes the delegate'swrite(byte[])method.voidwrite(int idx)Invokes the delegate'swrite(int)method.
-
-
-
Method Detail
-
write
public void write(int idx) throws java.io.IOExceptionInvokes the delegate'swrite(int)method.- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
idx- the byte to write- Throws:
java.io.IOException- if an I/O error occurs.
-
write
public void write(byte[] bts) throws java.io.IOExceptionInvokes the delegate'swrite(byte[])method.- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
bts- the bytes to write- Throws:
java.io.IOException- if an I/O error occurs.
-
write
public void write(byte[] bts, int st, int end) throws java.io.IOExceptionInvokes the delegate'swrite(byte[])method.- Overrides:
writein classjava.io.FilterOutputStream- Parameters:
bts- the bytes to writest- The start offsetend- The number of bytes to write- Throws:
java.io.IOException- if an I/O error occurs.
-
flush
public void flush() throws java.io.IOExceptionInvokes the delegate'sflush()method.- Specified by:
flushin interfacejava.io.Flushable- Overrides:
flushin classjava.io.FilterOutputStream- Throws:
java.io.IOException- if an I/O error occurs.
-
close
public void close() throws java.io.IOExceptionInvokes the delegate'sclose()method.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.FilterOutputStream- Throws:
java.io.IOException- if an I/O error occurs.
-
beforeWrite
protected void beforeWrite(int n) throws java.io.IOExceptionInvoked by the write methods before the call is proxied. The number of bytes to be written (1 for thewrite(int)method, buffer length forwrite(byte[]), etc.) is given as an argument.Subclasses can override this method to add common pre-processing functionality without having to override all the write methods. The default implementation does nothing.
- Parameters:
n- number of bytes to be written- Throws:
java.io.IOException- if the pre-processing fails- Since:
- 2.0
-
afterWrite
protected void afterWrite(int n) throws java.io.IOExceptionInvoked by the write methods after the proxied call has returned successfully. The number of bytes written (1 for thewrite(int)method, buffer length forwrite(byte[]), etc.) is given as an argument.Subclasses can override this method to add common post-processing functionality without having to override all the write methods. The default implementation does nothing.
- Parameters:
n- number of bytes written- Throws:
java.io.IOException- if the post-processing fails- Since:
- 2.0
-
handleIOException
protected void handleIOException(java.io.IOException e) throws java.io.IOExceptionHandle any IOExceptions thrown.This method provides a point to implement custom exception handling. The default behavior is to re-throw the exception.
- Parameters:
e- The IOException thrown- Throws:
java.io.IOException- if an I/O error occurs.- Since:
- 2.0
-
-