Package 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
Description
`SegmentedStringWriter(BufferRecycler br)`

## Method Summary

Modifier and Type
Method
Description
`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.io.Writer

`nullWriter`

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

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

## Constructor Details

### SegmentedStringWriter

public SegmentedStringWriter(BufferRecycler br)

## Method Details

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