# Class StringWriter

java.lang.Object
java.io.Writer
java.io.StringWriter

All Implemented Interfaces:
  `Appendable, AutoCloseable`

public class StringWriter extends Writer implements Appendable

- ## Field Summary

  ### Fields inherited from class Writer

  `lock`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StringWriter()`
  `StringWriter(int initialSize)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `StringWriter`
  `append(char c)`
  Appends the specified character.
  `StringWriter`
  `append(CharSequence csq)`
  Appends the character sequence `csq`.
  `StringWriter`
  `append(CharSequence csq, int start, int end)`
  Appends a subsequence of `csq`.
  `void`
  `close()`
  Close the stream, flushing it first.
  `void`
  `flush()`
  Flush the stream.
  `StringBuffer`
  `getBuffer()`
  `String`
  `toString()`
  Returns a string representation of the object.
  `void`
  `write(char[] cbuf)`
  Write an array of characters.
  `void`
  `write(char[] cbuf, int off, int len)`
  Write a portion of an array of characters.
  `void`
  `write(int c)`
  Write a single character.
  `void`
  `write(String str)`
  Write a string.
  `void`
  `write(String str, int off, int len)`
  Write a portion of a string.

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### StringWriter

    public StringWriter()

  - ### StringWriter

    public StringWriter(int initialSize)

- ## Method Details

  - ### close

    public void close() throws IOException
    Description copied from class: `Writer`
    Close the stream, flushing it first. Once a stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously-closed stream, however, has no effect.
    Specified by:
      `close` in interface `AutoCloseable`
    Specified by:
      `close` in class `Writer`
    Throws:
      `IOException`

  - ### flush

    public void flush() throws IOException
    Description copied from class: `Writer`
    Flush the stream. If the stream has saved any characters from the various write() methods in a buffer, write them immediately to their intended destination. Then, if that destination is another character or byte stream, flush it. Thus one flush() invocation will flush all the buffers in a chain of Writers and OutputStreams.
    Specified by:
      `flush` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(char[] cbuf, int off, int len) throws IOException
    Description copied from class: `Writer`
    Write a portion of an array of characters.
    Specified by:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(String str, int off, int len) throws IOException
    Description copied from class: `Writer`
    Write a portion of a string.
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(int c) throws IOException
    Description copied from class: `Writer`
    Write a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored. Subclasses that intend to support efficient single-character output should override this method.
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(String str) throws IOException
    Description copied from class: `Writer`
    Write a string.
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### write

    public void write(char[] cbuf) throws IOException
    Description copied from class: `Writer`
    Write an array of characters.
    Overrides:
      `write` in class `Writer`
    Throws:
      `IOException`

  - ### toString

    public String toString()
    Description copied from class: `Object`
    Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
    Overrides:
      `toString` in class `Object`

  - ### getBuffer

    public StringBuffer getBuffer()

  - ### append

    public StringWriter append(char c)
    Description copied from interface: `Appendable`

    Appends the specified character.

    ###### Parameters

    - `c`: the character to append.

    ###### Returns

    this `Appendable`.

    ###### Throws

    - `IOException`: if an I/O error occurs.
    Specified by:
      `append` in interface `Appendable`

  - ### append

    public StringWriter append(CharSequence csq)
    Description copied from interface: `Appendable`

    Appends the character sequence `csq`. Implementation classes may not append the whole sequence, for example if the target is a buffer with limited size.

    If `csq` is `null`, the characters "null" are appended.

    ###### Parameters

    - `csq`: the character sequence to append.

    ###### Returns

    this `Appendable`.

    ###### Throws

    - `IOException`: if an I/O error occurs.
    Specified by:
      `append` in interface `Appendable`

  - ### append

    public StringWriter append(CharSequence csq, int start, int end)
    Description copied from interface: `Appendable`

    Appends a subsequence of `csq`.

    If `csq` is not `null` then calling this method is equivalent to calling `append(csq.subSequence(start, end))`.

    If `csq` is `null`, the characters "null" are appended.

    ###### Parameters

    - `csq`: the character sequence to append.

    - `start`: @param start the first index of the subsequence of `csq` that is appended.

    - `end`: @param end the last index of the subsequence of `csq` that is appended.

    ###### Returns

    this `Appendable`.

    ###### Throws

    - `IndexOutOfBoundsException`: @throws IndexOutOfBoundsException if `start end` or `end` is greater than the length of `csq`.

    - `IOException`: if an I/O error occurs.

    Specified by:
      `append` in interface `Appendable`