Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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

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.

Version:
  $Id: ProxyOutputStream.java 1304052 2012-03-22 20:55:29Z ggregory $

Field Summary

Fields inherited from class java.io.FilterOutputStream
`out`

Constructor Summary
`ProxyOutputStream(OutputStream proxy)` Constructs a new ProxyOutputStream.

Method Summary
`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's `close()` method.
`void` | `flush()` Invokes the delegate's `flush()` method.
`protected void` | `handleIOException(IOException e)` Handle any IOExceptions thrown.
`void` | `write(byte[] bts)` Invokes the delegate's `write(byte[])` method.
`void` | `write(byte[] bts, int st, int end)` Invokes the delegate's `write(byte[])` method.
`void` | `write(int idx)` Invokes the delegate's `write(int)` method.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

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's `write(int)` method.

  Overrides:
    `write` in class `FilterOutputStream`
  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's `write(byte[])` method.

  Overrides:
    `write` in class `FilterOutputStream`
  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's `write(byte[])` method.

  Overrides:
    `write` in class `FilterOutputStream`
  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's `flush()` method.

  Specified by:
    `flush` in interface `Flushable`
  Overrides:
    `flush` in class `FilterOutputStream`
  Throws:
    `IOException` - if an I/O error occurs

### close

    public void close()
               throws IOException

  Invokes the delegate's `close()` method.

  Specified by:
    `close` in interface `Closeable`
  Overrides:
    `close` in class `FilterOutputStream`
  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 the `write(int)` method, buffer length for `write(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 the `write(int)` method, buffer length for `write(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 behaviour is to re-throw the exception.

  Parameters:
    `e` - The IOException thrown
  Throws:
    `IOException` - if an I/O error occurs
  Since:
    2.0

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2002-2012 The Apache Software Foundation. All Rights Reserved.