Class ProxyCollectionWriter

java.lang.Object
java.io.Writer
org.apache.commons.io.output.FilterCollectionWriter
org.apache.commons.io.output.ProxyCollectionWriter
All Implemented Interfaces:
Closeable, Flushable, Appendable, AutoCloseable
Direct Known Subclasses:
TeeWriter

A Proxy stream collection which acts as expected, that is it passes the method calls on to the proxied streams and doesn't change which methods are being called. It is an alternative base class to FilterWriter and FilterCollectionWriter 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). This is in contrast to ProxyWriter which is backed by a single Writer.
Since:
2.7
  • Constructor Details

    • ProxyCollectionWriter

      Constructs a new proxy collection writer.
      Parameters:
      writers - Writers object to provide the underlying targets.
    • ProxyCollectionWriter

      public ProxyCollectionWriter(Writer... writers)
      Constructs a new proxy collection writer.
      Parameters:
      writers - Writers to provide the underlying targets.
  • Method Details

    • afterWrite

      protected void afterWrite(int n) throws 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:
      IOException - if the post-processing fails.
    • append

      public Writer append(char c) throws IOException
      Invokes the delegates' append(char) methods.
      Specified by:
      append in interface Appendable
      Overrides:
      append in class FilterCollectionWriter
      Parameters:
      c - The character to write.
      Returns:
      this writer.
      Throws:
      IOException - if an I/O error occurs.
      Since:
      2.0
    • append

      public Writer append(CharSequence csq) throws IOException
      Invokes the delegates' append(CharSequence) methods.
      Specified by:
      append in interface Appendable
      Overrides:
      append in class FilterCollectionWriter
      Parameters:
      csq - The character sequence to write.
      Returns:
      this writer.
      Throws:
      IOException - if an I/O error occurs.
    • append

      public Writer append(CharSequence csq, int start, int end) throws IOException
      Invokes the delegates' append(CharSequence, int, int) methods.
      Specified by:
      append in interface Appendable
      Overrides:
      append in class FilterCollectionWriter
      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:
      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 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:
      IOException - if the pre-processing fails.
    • close

      public void close() throws IOException
      Invokes the delegate's close() method.
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class FilterCollectionWriter
      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 FilterCollectionWriter
      Throws:
      IOException - if an I/O error occurs.
    • 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.
    • write

      public void write(char[] cbuf) throws IOException
      Invokes the delegate's write(char[]) method.
      Overrides:
      write in class FilterCollectionWriter
      Parameters:
      cbuf - the characters to write.
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(char[] cbuf, int off, int len) throws IOException
      Invokes the delegate's write(char[], int, int) method.
      Overrides:
      write in class FilterCollectionWriter
      Parameters:
      cbuf - the characters to write.
      off - The start offset.
      len - The number of characters to write.
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(int c) throws IOException
      Invokes the delegate's write(int) method.
      Overrides:
      write in class FilterCollectionWriter
      Parameters:
      c - the character to write.
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(String str) throws IOException
      Invokes the delegate's write(String) method.
      Overrides:
      write in class FilterCollectionWriter
      Parameters:
      str - the string to write.
      Throws:
      IOException - if an I/O error occurs.
    • write

      public void write(String str, int off, int len) throws IOException
      Invokes the delegate's write(String) method.
      Overrides:
      write in class FilterCollectionWriter
      Parameters:
      str - the string to write.
      off - The start offset.
      len - The number of characters to write.
      Throws:
      IOException - if an I/O error occurs.