ProxyWriter (Commons IO 2.5)
Date: 2016-12-01

org.apache.commons.io.output

## Class ProxyWriter

- java.lang.Object
- - java.io.Writer
  - - java.io.FilterWriter
    - - org.apache.commons.io.output.ProxyWriter

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.Appendable, java.lang.AutoCloseable

      public class ProxyWriter
      extends java.io.FilterWriter

  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 FilterWriter to increase reusability, because FilterWriter changes the methods being called, such as write(char[]) to write(char[], int, int) and write(String) to write(String, int, int).
  Version:
    $Id: ProxyWriter.java 1415850 2012-11-30 20:51:39Z ggregory $

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterWriter

      `out`

    - ### Fields inherited from class java.io.Writer

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProxyWriter(java.io.Writer proxy)` Constructs a new ProxyWriter.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | `afterWrite(int n)` Invoked by the write methods after the proxied call has returned successfully.
    `java.io.Writer` | `append(char c)` Invokes the delegate's `append(char)` method.
    `java.io.Writer` | `append(java.lang.CharSequence csq)` Invokes the delegate's `append(CharSequence)` method.
    `java.io.Writer` | `append(java.lang.CharSequence csq, int start, int end)` Invokes the delegate's `append(CharSequence, int, int)` method.
    `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(java.io.IOException e)` Handle any IOExceptions thrown.
    `void` | `write(char[] chr)` Invokes the delegate's `write(char[])` method.
    `void` | `write(char[] chr, int st, int len)` Invokes the delegate's `write(char[], int, int)` method.
    `void` | `write(int idx)` Invokes the delegate's `write(int)` method.
    `void` | `write(java.lang.String str)` Invokes the delegate's `write(String)` method.
    `void` | `write(java.lang.String str, int st, int len)` Invokes the delegate's `write(String)` method.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ProxyWriter

          public ProxyWriter(java.io.Writer proxy)

      Constructs a new ProxyWriter.
      Parameters:
        `proxy` - the Writer to delegate to

  - ### Method Detail

    - #### append

          public java.io.Writer append(char c)
                                throws java.io.IOException

      Invokes the delegate's `append(char)` method.
      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.Writer`
      Parameters:
        `c` - The character to write
      Returns:
        this writer
      Throws:
        `java.io.IOException` - if an I/O error occurs
      Since:
        2.0

    - #### append

          public java.io.Writer append(java.lang.CharSequence csq,
                              int start,
                              int end)
                                throws java.io.IOException

      Invokes the delegate's `append(CharSequence, int, int)` method.
      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.Writer`
      Parameters:
        `csq` - The character sequence to write
        `start` - The index of the first character to write
        `end` - The index of the first character to write (exclusive)
      Returns:
        this writer
      Throws:
        `java.io.IOException` - if an I/O error occurs
      Since:
        2.0

    - #### append

          public java.io.Writer append(java.lang.CharSequence csq)
                                throws java.io.IOException

      Invokes the delegate's `append(CharSequence)` method.
      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.Writer`
      Parameters:
        `csq` - The character sequence to write
      Returns:
        this writer
      Throws:
        `java.io.IOException` - if an I/O error occurs
      Since:
        2.0

    - #### write

          public void write(int idx)
                     throws java.io.IOException

      Invokes the delegate's `write(int)` method.
      Overrides:
        `write` in class `java.io.FilterWriter`
      Parameters:
        `idx` - the character to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(char[] chr)
                     throws java.io.IOException

      Invokes the delegate's `write(char[])` method.
      Overrides:
        `write` in class `java.io.Writer`
      Parameters:
        `chr` - the characters to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(char[] chr,
                   int st,
                   int len)
                     throws java.io.IOException

      Invokes the delegate's `write(char[], int, int)` method.
      Overrides:
        `write` in class `java.io.FilterWriter`
      Parameters:
        `chr` - the characters to write
        `st` - The start offset
        `len` - The number of characters to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(java.lang.String str)
                     throws java.io.IOException

      Invokes the delegate's `write(String)` method.
      Overrides:
        `write` in class `java.io.Writer`
      Parameters:
        `str` - the string to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### write

          public void write(java.lang.String str,
                   int st,
                   int len)
                     throws java.io.IOException

      Invokes the delegate's `write(String)` method.
      Overrides:
        `write` in class `java.io.FilterWriter`
      Parameters:
        `str` - the string to write
        `st` - The start offset
        `len` - The number of characters to write
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### flush

          public void flush()
                     throws java.io.IOException

      Invokes the delegate's `flush()` method.
      Specified by:
        `flush` in interface `java.io.Flushable`
      Overrides:
        `flush` in class `java.io.FilterWriter`
      Throws:
        `java.io.IOException` - if an I/O error occurs

    - #### close

          public void close()
                     throws java.io.IOException

      Invokes the delegate's `close()` method.
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Overrides:
        `close` in class `java.io.FilterWriter`
      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 chars to be written (1 for the `write(int)` method, buffer length for `write(char[])`, 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 chars 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 chars written (1 for the `write(int)` method, buffer length for `write(char[])`, 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 chars 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 behaviour is to re-throw the exception.

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

Copyright (c) 2002-2016 Apache Software Foundation