org.apache.groovy.io

## Class StringBuilderWriter

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

- All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.io.Serializable, java.lang.Appendable, java.lang.AutoCloseable

      public class StringBuilderWriter
      extends java.io.Writer
      implements java.io.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(java.lang.StringBuilder builder)` Constructs a new instance with the specified `StringBuilder`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.io.Writer` | `append(char value)` Appends a single character to this Writer.
    `java.io.Writer` | `append(java.lang.CharSequence value)` Appends a character sequence to this Writer.
    `java.io.Writer` | `append(java.lang.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.
    `java.lang.StringBuilder` | `getBuilder()` Returns the underlying builder.
    `java.lang.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(java.lang.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(java.lang.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 java.io.Writer append(char value)

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

    - #### append

          public java.io.Writer append(java.lang.CharSequence value)

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

    - #### append

          public java.io.Writer append(java.lang.CharSequence value,
                                       int start,
                                       int end)

      Appends a portion of a character sequence to the `StringBuilder`.
      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.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 `java.io.Closeable`
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in class `java.io.Writer`

    - #### flush

          public void flush()

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

    - #### write

          public void write(java.lang.String value)

      Writes a String to the `StringBuilder`.
      Overrides:
        `write` in class `java.io.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 `java.io.Writer`
      Parameters:
        `value` - The value to write
        `offset` - The index of the first character
        `length` - The number of characters to write

    - #### getBuilder

          public java.lang.StringBuilder getBuilder()

      Returns the underlying builder.
      Returns:
        The underlying builder

    - #### toString

          public java.lang.String toString()

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