org.apache.commons.io.output

## Class WriterOutputStream.Builder

- java.lang.Object
- - org.apache.commons.io.build.AbstractSupplier<T,B>
  - - org.apache.commons.io.build.AbstractOriginSupplier<T,B>
    - - org.apache.commons.io.build.AbstractStreamBuilder<WriterOutputStream,WriterOutputStream.Builder>
      - - org.apache.commons.io.output.WriterOutputStream.Builder

- All Implemented Interfaces:
    IOSupplier<WriterOutputStream>
  Enclosing class:
    WriterOutputStream

      public static class WriterOutputStream.Builder
      extends AbstractStreamBuilder<WriterOutputStream,WriterOutputStream.Builder>

  Builds a new `WriterOutputStream`.

  For example:

       WriterOutputStream s = WriterOutputStream.builder()
         .setPath(path)
         .setBufferSize(8192)
         .setCharset(StandardCharsets.UTF_8)
         .setWriteImmediately(false)
         .get();

  See Also:
    `get()`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Builder()` Constructs a new builder of `WriterOutputStream`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `WriterOutputStream` | `get()` Builds a new `WriterOutputStream`.
    `WriterOutputStream.Builder` | `setCharset(Charset charset)` Sets the Charset.
    `WriterOutputStream.Builder` | `setCharset(String charset)` Sets the Charset.
    `WriterOutputStream.Builder` | `setCharsetDecoder(CharsetDecoder charsetDecoder)` Sets the charset decoder.
    `WriterOutputStream.Builder` | `setWriteImmediately(boolean writeImmediately)` Sets whether the output buffer will be flushed after each write operation (`true`), meaning all available data will be written to the underlying `Writer` immediately.

    - ### Methods inherited from class org.apache.commons.io.build.AbstractStreamBuilder

      `getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeDefault, setBufferSizeMax, setCharsetDefault, setOpenOptions`

    - ### Methods inherited from class org.apache.commons.io.build.AbstractOriginSupplier

      `checkOrigin, getOrigin, hasOrigin, newByteArrayOrigin, newCharSequenceOrigin, newFileOrigin, newFileOrigin, newInputStreamOrigin, newOutputStreamOrigin, newPathOrigin, newPathOrigin, newRandomAccessFileOrigin, newRandomAccessFileOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, setRandomAccessFile, setRandomAccessFile, setReader, setURI, setWriter`

    - ### Methods inherited from class org.apache.commons.io.build.AbstractSupplier

      `asThis`

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

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

    - ### Methods inherited from interface org.apache.commons.io.function.IOSupplier

      `asSupplier, getUnchecked`

- - ### Constructor Detail

    - #### Builder

          public Builder()

      Constructs a new builder of `WriterOutputStream`.

  - ### Method Detail

    - #### get

          public WriterOutputStream get()
                                 throws IOException

      Builds a new `WriterOutputStream`.

      You must set an aspect that supports `AbstractStreamBuilder.getWriter()` on this builder, otherwise, this method throws an exception.

      This builder uses the following aspects:

      - `AbstractStreamBuilder.getWriter()`
      - `AbstractStreamBuilder.getBufferSize()`
      - charsetDecoder
      - writeImmediately
      Returns:
        a new instance.
      Throws:
        `UnsupportedOperationException` - if the origin cannot provide a `Writer`.
        `IOException` - if an I/O error occurs converting to an `Writer` using `AbstractStreamBuilder.getWriter()`.
      See Also:
        `AbstractStreamBuilder.getWriter()`, `IOSupplier.getUnchecked()`

    - #### setCharset

          public WriterOutputStream.Builder setCharset(Charset charset)

      Description copied from class: `AbstractStreamBuilder`
      Sets the Charset.

      Subclasses may ignore this setting.

      Overrides:
        `setCharset` in class `AbstractStreamBuilder<WriterOutputStream,WriterOutputStream.Builder>`
      Parameters:
        `charset` - the Charset, null resets to the default.
      Returns:
        `this` instance.

    - #### setCharset

          public WriterOutputStream.Builder setCharset(String charset)

      Description copied from class: `AbstractStreamBuilder`
      Sets the Charset.

      Subclasses may ignore this setting.

      Overrides:
        `setCharset` in class `AbstractStreamBuilder<WriterOutputStream,WriterOutputStream.Builder>`
      Parameters:
        `charset` - the Charset name, null resets to the default.
      Returns:
        `this` instance.

    - #### setCharsetDecoder

          public WriterOutputStream.Builder setCharsetDecoder(CharsetDecoder charsetDecoder)

      Sets the charset decoder.
      Parameters:
        `charsetDecoder` - the charset decoder.
      Returns:
        `this` instance.

    - #### setWriteImmediately

          public WriterOutputStream.Builder setWriteImmediately(boolean writeImmediately)

      Sets whether the output buffer will be flushed after each write operation (`true`), meaning all available data will be written to the underlying `Writer` immediately. If `false`, the output buffer will only be flushed when it overflows or when `WriterOutputStream.flush()` or `WriterOutputStream.close()` is called.
      Parameters:
        `writeImmediately` - If `true` the output buffer will be flushed after each write operation, meaning all available data will be written to the underlying `Writer` immediately. If `false`, the output buffer will only be flushed when it overflows or when `WriterOutputStream.flush()` or `WriterOutputStream.close()` is called.
      Returns:
        `this` instance.