Package org.codehaus.groovy.runtime

# Class StringBufferWriter

java.lang.Object
java.io.Writer
org.codehaus.groovy.runtime.StringBufferWriter

All Implemented Interfaces:
  `Closeable`, `Flushable`, `Appendable`, `AutoCloseable`

public class StringBufferWriter extends Writer
This class codes around a silly limitation of StringWriter which doesn't allow a StringBuffer to be passed in as a constructor for some bizarre reason. So we replicate the behaviour of StringWriter here but allow a StringBuffer to be passed in.

- ## Field Summary

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

  `lock`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StringBufferWriter(StringBuffer buffer)`
  Create a new string writer which will append the text to the given StringBuffer

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Closing a `StringWriter` has no effect.
  `void`
  `flush()`
  Flush the stream.
  `String`
  `toString()`
  Return the buffer's current value as a string.
  `void`
  `write(char[] text, int offset, int length)`
  Write a portion of an array of characters.
  `void`
  `write(int c)`
  Write a single character.
  `void`
  `write(String text)`
  Write a string.
  `void`
  `write(String text, int offset, int length)`
  Write a portion of a string.

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

  `append, append, append, nullWriter, write`

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

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

- ## Constructor Details

  - ### StringBufferWriter

    public StringBufferWriter(StringBuffer buffer)
    Create a new string writer which will append the text to the given StringBuffer

- ## Method Details

  - ### write

    public void write(int c)
    Write a single character.
    Overrides:
      `write` in class `Writer`

  - ### write

    public void write(char[] text, int offset, int length)
    Write a portion of an array of characters.
    Specified by:
      `write` in class `Writer`
    Parameters:
      `text` - Array of characters
      `offset` - Offset from which to start writing characters
      `length` - Number of characters to write

  - ### write

    public void write(String text)
    Write a string.
    Overrides:
      `write` in class `Writer`

  - ### write

    public void write(String text, int offset, int length)
    Write a portion of a string.
    Overrides:
      `write` in class `Writer`
    Parameters:
      `text` - the text to be written
      `offset` - offset from which to start writing characters
      `length` - Number of characters to write

  - ### toString

    public String toString()
    Return the buffer's current value as a string.
    Overrides:
      `toString` in class `Object`

  - ### flush

    public void flush()
    Flush the stream.
    Specified by:
      `flush` in interface `Flushable`
    Specified by:
      `flush` in class `Writer`

  - ### close

    public void close() throws IOException
    Closing a `StringWriter` has no effect. The methods in this class can be called after the stream has been closed without generating an `IOException`.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in interface `Closeable`
    Specified by:
      `close` in class `Writer`
    Throws:
      `IOException`