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.FilterOutputStream
A 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 void
afterWrite(int n)
Invoked by the write methods after the proxied call has returned successfully.protected void
beforeWrite(int n)
Invoked by the write methods before the call is proxied.void
close()
Invokes the delegate'sclose()
method.void
flush()
Invokes the delegate'sflush()
method.protected void
handleIOException(java.io.IOException e)
Handle any IOExceptions thrown.void
write(byte[] bts)
Invokes the delegate'swrite(byte[])
method.void
write(byte[] bts, int st, int end)
Invokes the delegate'swrite(byte[])
method.void
write(int idx)
Invokes the delegate'swrite(int)
method.
-
-
-
Method Detail
-
write
public void write(int idx) throws java.io.IOException
Invokes the delegate'swrite(int)
method.- Overrides:
write
in 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.IOException
Invokes the delegate'swrite(byte[])
method.- Overrides:
write
in 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.IOException
Invokes the delegate'swrite(byte[])
method.- Overrides:
write
in 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.IOException
Invokes the delegate'sflush()
method.- Specified by:
flush
in interfacejava.io.Flushable
- Overrides:
flush
in classjava.io.FilterOutputStream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
close
public void close() throws java.io.IOException
Invokes the delegate'sclose()
method.- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.FilterOutputStream
- Throws:
java.io.IOException
- if an I/O error occurs.
-
beforeWrite
protected void beforeWrite(int n) throws java.io.IOException
Invoked 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.IOException
Invoked 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.IOException
Handle 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
-
-