org.apache.groovy.io

## Class StringBuilderWriter

- java.lang.Object
- - java.io.Writer
  - - org.apache.groovy.io.StringBuilderWriter

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

      public class StringBuilderWriter
      extends Writer
      implements Serializable

  Copied from https://github.com/apache/commons-io/blob/master/src/main/java/org/apache/commons/io/output/StringBuilderWriter.java `Writer` implementation that outputs to a `StringBuilder`.

  NOTE: This implementation, as an alternative to `java.io.StringWriter`, provides an un-synchronized (i.e. for use in a single thread) implementation for better performance. For safe usage with multiple `Thread`s then `java.io.StringWriter` should be used.

  Since:
    2.0
  See Also:
    Serialized Form

- - ### Field Summary

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

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `StringBuilderWriter()` Constructs a new `StringBuilder` instance with default capacity.
    `StringBuilderWriter(int capacity)` Constructs a new `StringBuilder` instance with the specified capacity.
    `StringBuilderWriter(StringBuilder builder)` Constructs a new instance with the specified `StringBuilder`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `Writer` | `append(char value)` Appends a single character to this Writer.
    `Writer` | `append(CharSequence value)` Appends a character sequence to this Writer.
    `Writer` | `append(CharSequence value, int start, int end)` Appends a portion of a character sequence to the `StringBuilder`.
    `void` | `close()` Closing this writer has no effect.
    `void` | `flush()` Flushing this writer has no effect.
    `StringBuilder` | `getBuilder()` Returns the underlying builder.
    `String` | `toString()` Returns `StringBuilder.toString()`.
    `void` | `write(char[] value, int offset, int length)` Writes a portion of a character array to the `StringBuilder`.
    `void` | `write(String value)` Writes a String to the `StringBuilder`.

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

      `write, write, write`

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

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

- - ### Constructor Detail

    - #### StringBuilderWriter

          public StringBuilderWriter()

      Constructs a new `StringBuilder` instance with default capacity.

    - #### StringBuilderWriter

          public StringBuilderWriter(int capacity)

      Constructs a new `StringBuilder` instance with the specified capacity.
      Parameters:
        `capacity` - The initial capacity of the underlying `StringBuilder`

    - #### StringBuilderWriter

          public StringBuilderWriter(StringBuilder builder)

      Constructs a new instance with the specified `StringBuilder`.

      If `builder` is null a new instance with default capacity will be created.

      Parameters:
        `builder` - The String builder. May be null.

  - ### Method Detail

    - #### append

          public Writer append(char value)

      Appends a single character to this Writer.
      Specified by:
        `append` in interface `Appendable`
      Overrides:
        `append` in class `Writer`
      Parameters:
        `value` - The character to append
      Returns:
        This writer instance

    - #### append

          public Writer append(CharSequence value)

      Appends a character sequence to this Writer.
      Specified by:
        `append` in interface `Appendable`
      Overrides:
        `append` in class `Writer`
      Parameters:
        `value` - The character to append
      Returns:
        This writer instance

    - #### append

          public Writer append(CharSequence value,
                               int start,
                               int end)

      Appends a portion of a character sequence to the `StringBuilder`.
      Specified by:
        `append` in interface `Appendable`
      Overrides:
        `append` in class `Writer`
      Parameters:
        `value` - The character to append
        `start` - The index of the first character
        `end` - The index of the last character + 1
      Returns:
        This writer instance

    - #### close

          public void close()

      Closing this writer has no effect.
      Specified by:
        `close` in interface `Closeable`
      Specified by:
        `close` in interface `AutoCloseable`
      Specified by:
        `close` in class `Writer`

    - #### flush

          public void flush()

      Flushing this writer has no effect.
      Specified by:
        `flush` in interface `Flushable`
      Specified by:
        `flush` in class `Writer`

    - #### write

          public void write(String value)

      Writes a String to the `StringBuilder`.
      Overrides:
        `write` in class `Writer`
      Parameters:
        `value` - The value to write

    - #### write

          public void write(char[] value,
                            int offset,
                            int length)

      Writes a portion of a character array to the `StringBuilder`.
      Specified by:
        `write` in class `Writer`
      Parameters:
        `value` - The value to write
        `offset` - The index of the first character
        `length` - The number of characters to write

    - #### getBuilder

          public StringBuilder getBuilder()

      Returns the underlying builder.
      Returns:
        The underlying builder

    - #### toString

          public String toString()

      Returns `StringBuilder.toString()`.
      Overrides:
        `toString` in class `Object`
      Returns:
        The contents of the String builder.