SegmentedStringWriter
Date: 2016-12-03

com.fasterxml.jackson.core.io

## Class SegmentedStringWriter

- java.lang.Object
- - java.io.Writer
  - - com.fasterxml.jackson.core.io.SegmentedStringWriter

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

      public final class SegmentedStringWriter
      extends java.io.Writer

  Efficient alternative to `StringWriter`, based on using segmented internal buffer. Initial input buffer is also recyclable.

  This class is most useful when serializing JSON content as a String: if so, instance of this class can be given as the writer to `JsonGenerator`.

- - ### Field Summary

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

      `lock`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SegmentedStringWriter(BufferRecycler br)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.io.Writer` | `append(char c)`
    `java.io.Writer` | `append(java.lang.CharSequence csq)`
    `java.io.Writer` | `append(java.lang.CharSequence csq, int start, int end)`
    `void` | `close()`
    `void` | `flush()`
    `java.lang.String` | `getAndClear()` Main access method that will construct a String that contains all the contents, release all internal buffers we may have, and return result String.
    `void` | `write(char[] cbuf)`
    `void` | `write(char[] cbuf, int off, int len)`
    `void` | `write(int c)`
    `void` | `write(java.lang.String str)`
    `void` | `write(java.lang.String str, int off, int len)`

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

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

- - ### Constructor Detail

    - #### SegmentedStringWriter

          public SegmentedStringWriter(BufferRecycler br)

  - ### Method Detail

    - #### append

          public java.io.Writer append(char c)

      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.Writer`

    - #### append

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

      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.Writer`

    - #### append

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

      Specified by:
        `append` in interface `java.lang.Appendable`
      Overrides:
        `append` in class `java.io.Writer`

    - #### close

          public void close()

      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()

      Specified by:
        `flush` in interface `java.io.Flushable`
      Specified by:
        `flush` in class `java.io.Writer`

    - #### write

          public void write(char[] cbuf)

      Overrides:
        `write` in class `java.io.Writer`

    - #### write

          public void write(char[] cbuf,
                   int off,
                   int len)

      Specified by:
        `write` in class `java.io.Writer`

    - #### write

          public void write(int c)

      Overrides:
        `write` in class `java.io.Writer`

    - #### write

          public void write(java.lang.String str)

      Overrides:
        `write` in class `java.io.Writer`

    - #### write

          public void write(java.lang.String str,
                   int off,
                   int len)

      Overrides:
        `write` in class `java.io.Writer`

    - #### getAndClear

          public java.lang.String getAndClear()

      Main access method that will construct a String that contains all the contents, release all internal buffers we may have, and return result String. Note that the method is not idempotent -- if called second time, will just return an empty String.