Package 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 `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 `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
  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

  Modifier and Type
  Method
  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()`
  Gets 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

  `nullWriter, write, write, write`

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

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

- ## Constructor Details

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

  - ### 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 `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    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`

  - ### getBuilder

    public StringBuilder getBuilder()
    Gets 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.

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

  - ### write

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