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:
- Closeable, Flushable, AutoCloseable
- Direct Known Subclasses:
- CloseShieldOutputStream, CountingOutputStream, TaggedOutputStream, TeeOutputStream
public class ProxyOutputStream extends 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.
-
Field Summary
Fields inherited from class java.io.FilterOutputStream
out
Constructor Summary
Constructors Constructor and Description ProxyOutputStream(OutputStream proxy)
Constructs a new ProxyOutputStream.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and 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(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.
-
Constructor Detail
ProxyOutputStream
public ProxyOutputStream(OutputStream proxy)
Constructs a new ProxyOutputStream.- Parameters:
-
proxy
- the OutputStream to delegate to
Method Detail
write
public void write(int idx) throws IOException
Invokes the delegate'swrite(int)
method.- Overrides:
-
write
in classFilterOutputStream
- Parameters:
-
idx
- the byte to write - Throws:
-
IOException
- if an I/O error occurs.
write
public void write(byte[] bts) throws IOException
Invokes the delegate'swrite(byte[])
method.- Overrides:
-
write
in classFilterOutputStream
- Parameters:
-
bts
- the bytes to write - Throws:
-
IOException
- if an I/O error occurs.
write
public void write(byte[] bts, int st, int end) throws IOException
Invokes the delegate'swrite(byte[])
method.- Overrides:
-
write
in classFilterOutputStream
- Parameters:
-
bts
- the bytes to write -
st
- The start offset -
end
- The number of bytes to write - Throws:
-
IOException
- if an I/O error occurs.
flush
public void flush() throws IOException
Invokes the delegate'sflush()
method.- Specified by:
-
flush
in interfaceFlushable
- Overrides:
-
flush
in classFilterOutputStream
- Throws:
-
IOException
- if an I/O error occurs.
close
public void close() throws IOException
Invokes the delegate'sclose()
method.- Specified by:
-
close
in interfaceCloseable
- Specified by:
-
close
in interfaceAutoCloseable
- Overrides:
-
close
in classFilterOutputStream
- Throws:
-
IOException
- if an I/O error occurs.
beforeWrite
protected void beforeWrite(int n) throws 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:
-
IOException
- if the pre-processing fails - Since:
- 2.0
afterWrite
protected void afterWrite(int n) throws 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:
-
IOException
- if the post-processing fails - Since:
- 2.0
handleIOException
protected void handleIOException(IOException e) throws 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:
-
IOException
- if an I/O error occurs. - Since:
- 2.0
Copyright © 2002–2021 The Apache Software Foundation. All rights reserved.