Package org.apache.commons.io.output

# Class WriterOutputStream.Builder

java.lang.Object
org.apache.commons.io.build.AbstractSupplier<WriterOutputStream,WriterOutputStream.Builder>
org.apache.commons.io.build.AbstractOriginSupplier<WriterOutputStream,WriterOutputStream.Builder>
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` instance.

For example:

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

Since:
  2.12.0

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Builder()`
  Constructs a new Builder.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `WriterOutputStream`
  `get()`
  Constructs a new instance.
  `WriterOutputStream.Builder`
  `setCharset(String charset)`
  Sets the Charset.
  `WriterOutputStream.Builder`
  `setCharset(Charset 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`), i.e.

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

  `getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getInputStream, getOpenOptions, getOutputStream, getPath, 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, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, 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`

- ## Constructor Details

  - ### Builder

    public Builder()
    Constructs a new Builder.

- ## Method Details

  - ### get

    public WriterOutputStream get() throws IOException
    Constructs a new instance.

    This builder use the aspect Writer, OpenOption[], Charset, CharsetDecoder, buffer size and writeImmediately.

    You must provide an origin that can be converted to a Writer by this builder, otherwise, this call will throw an `UnsupportedOperationException`.

    Returns:
      a new instance.
    Throws:
      `UnsupportedOperationException` - if the origin cannot provide a Writer.
      `IOException` - if an I/O error occurs.
    See Also:
      - `AbstractStreamBuilder.getWriter()`

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

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

  - ### setCharsetDecoder

    public WriterOutputStream.Builder setCharsetDecoder(CharsetDecoder charsetDecoder)
    Sets the charset decoder.
    Parameters:
      `charsetDecoder` - the charset decoder.
    Returns:
      this

  - ### setWriteImmediately

    public WriterOutputStream.Builder setWriteImmediately(boolean writeImmediately)
    Sets whether the output buffer will be flushed after each write operation (`true`), i.e. 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, i.e. 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