com.fasterxml.jackson.core.io

## Class SegmentedStringWriter

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

All Implemented Interfaces:
  Closeable, Flushable, Appendable, AutoCloseable

    public final class SegmentedStringWriter
    extends 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

All Methods Instance Methods Concrete Methods
`Writer` `append(char c)`
`Writer` `append(CharSequence csq)`
`Writer` `append(CharSequence csq, int start, int end)`
`void` `close()`
`void` `flush()`
`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(String str)`
`void` `write(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 Writer append(char c)
                  throws IOException

Specified by:
  `append` in interface `Appendable`
Overrides:
  `append` in class `Writer`
Throws:
  `IOException`

#### append

    public Writer append(CharSequence csq)
                  throws IOException

Specified by:
  `append` in interface `Appendable`
Overrides:
  `append` in class `Writer`
Throws:
  `IOException`

#### append

    public Writer append(CharSequence csq,
                         int start,
                         int end)
                  throws IOException

Specified by:
  `append` in interface `Appendable`
Overrides:
  `append` in class `Writer`
Throws:
  `IOException`

#### close

    public void close()

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Specified by:
  `close` in class `Writer`

#### flush

    public void flush()

Specified by:
  `flush` in interface `Flushable`
Specified by:
  `flush` in class `Writer`

#### write

    public void write(char[] cbuf)
               throws IOException

Overrides:
  `write` in class `Writer`
Throws:
  `IOException`

#### write

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

Specified by:
  `write` in class `Writer`
Throws:
  `IOException`

#### write

    public void write(int c)
               throws IOException

Overrides:
  `write` in class `Writer`
Throws:
  `IOException`

#### write

    public void write(String str)
               throws IOException

Overrides:
  `write` in class `Writer`
Throws:
  `IOException`

#### write

    public void write(String str,
                      int off,
                      int len)
               throws IOException

Overrides:
  `write` in class `Writer`
Throws:
  `IOException`

#### getAndClear

    public String getAndClear()
                       throws IOException

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.

Returns:
  String that contains all aggregated content
Throws:
  `IOException` - if there are general I/O or parse issues, including if the text is too large, see `StreamReadConstraints.Builder.maxStringLength(int)`