org.apache.commons.io.output

## Class BrokenWriter

- java.lang.Object
- - java.io.Writer
  - - org.apache.commons.io.output.BrokenWriter

- All Implemented Interfaces:
    Closeable, Flushable, Appendable, AutoCloseable

      public class BrokenWriter
      extends Writer

  Always throws an exception from all `Writer` methods where `IOException` is declared.

  This class is mostly useful for testing error handling.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static BrokenWriter` | `INSTANCE` The singleton instance using a default IOException.

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

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BrokenWriter()` Constructs a new writer that always throws an `IOException`.
    `BrokenWriter(java.util.function.Supplier<Throwable> exceptionSupplier)` Constructs a new writer that always throws the supplied exception.
    `BrokenWriter(Throwable exception)` Constructs a new writer that always throws the given exception.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `close()` Throws the configured exception.
    `void` | `flush()` Throws the configured exception.
    `void` | `write(char[] cbuf, int off, int len)` Throws the configured exception.

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

      `append, append, append, write, write, write, write`

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

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

- - ### Field Detail

    - #### INSTANCE

          public static final BrokenWriter INSTANCE

      The singleton instance using a default IOException.

  - ### Constructor Detail

    - #### BrokenWriter

          public BrokenWriter()

      Constructs a new writer that always throws an `IOException`.

    - #### BrokenWriter

          public BrokenWriter(java.util.function.Supplier<Throwable> exceptionSupplier)

      Constructs a new writer that always throws the supplied exception.
      Parameters:
        `exceptionSupplier` - a supplier for the IOException or RuntimeException to be thrown.

    - #### BrokenWriter

          public BrokenWriter(Throwable exception)

      Constructs a new writer that always throws the given exception.
      Parameters:
        `exception` - the exception to be thrown.

  - ### Method Detail

    - #### close

          public void close()
                     throws IOException

      Throws the configured exception.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `Writer`
      Throws:
        `IOException` - always throws the exception configured in a constructor.

    - #### flush

          public void flush()
                     throws IOException

      Throws the configured exception.
      Specified by:
        `flush` in interface `Flushable`
      Specified by:
        `flush` in class `Writer`
      Throws:
        `IOException` - always throws the exception configured in a constructor.

    - #### write

          public void write(char[] cbuf,
                            int off,
                            int len)
                     throws IOException

      Throws the configured exception.
      Specified by:
        `write` in class `Writer`
      Parameters:
        `cbuf` - ignored.
        `off` - ignored.
        `len` - ignored.
      Throws:
        `IOException` - always throws the exception configured in a constructor.