Package org.apache.velocity.util

# Class StringBuilderWriter

java.lang.Object
java.io.Writer
org.apache.velocity.util.StringBuilderWriter

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

public class StringBuilderWriter extends Writer implements Serializable
`Writer` implementation that outputs to a `StringBuilder`.

NOTE: This implementation, as an alternative to `java.io.StringWriter`, provides an un-synchronized (i.e. for use in a single thread) implementation for better performance. For safe usage with multiple `Thread`s then `java.io.StringWriter` should be used.

(borrowed from commons.io project)

Since:
  2.0
Version:
  $Id$
See Also:
  - Serialized Form

## Field Summary

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

`lock`

## Constructor Summary

Constructors
Constructor
Description
`StringBuilderWriter()`
Constructs a new `StringBuilder` instance with default capacity.
`StringBuilderWriter(int capacity)`
Constructs a new `StringBuilder` instance with the specified capacity.
`StringBuilderWriter(StringBuilder builder)`
Constructs a new instance with the specified `StringBuilder`.

## Method Summary

Modifier and Type
Method
Description
`Writer`
`append(char value)`
Appends a single character to this Writer.
`Writer`
`append(CharSequence value)`
Appends a character sequence to this Writer.
`Writer`
`append(CharSequence value, int start, int end)`
Appends a portion of a character sequence to the `StringBuilder`.
`void`
`close()`
Closing this writer has no effect.
`void`
`flush()`
Flushing this writer has no effect.
`StringBuilder`
`getBuilder()`
Returns the underlying builder.
`String`
`toString()`
Returns `StringBuilder.toString()`.
`void`
`write(char[] value, int offset, int length)`
Writes a portion of a character array to the `StringBuilder`.
`void`
`write(String value)`
Writes a String to the `StringBuilder`.

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

`write, write, write`

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

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

## Constructor Details

### StringBuilderWriter

public StringBuilderWriter()
Constructs a new `StringBuilder` instance with default capacity.

### StringBuilderWriter

public StringBuilderWriter(int capacity)
Constructs a new `StringBuilder` instance with the specified capacity.

Parameters:
  `capacity` - The initial capacity of the underlying `StringBuilder`

### StringBuilderWriter

public StringBuilderWriter(StringBuilder builder)
Constructs a new instance with the specified `StringBuilder`.

If `builder` is null a new instance with default capacity will be created.

Parameters:
  `builder` - The String builder. May be null.

## Method Details

### append

public Writer append(char value)
Appends a single character to this Writer.

Specified by:
  `append` in interface `Appendable`
Overrides:
  `append` in class `Writer`
Parameters:
  `value` - The character to append
Returns:
  This writer instance

### append

public Writer append(CharSequence value)
Appends a character sequence to this Writer.

Specified by:
  `append` in interface `Appendable`
Overrides:
  `append` in class `Writer`
Parameters:
  `value` - The character to append
Returns:
  This writer instance

### append

public Writer append(CharSequence value, int start, int end)
Appends a portion of a character sequence to the `StringBuilder`.

Specified by:
  `append` in interface `Appendable`
Overrides:
  `append` in class `Writer`
Parameters:
  `value` - The character to append
  `start` - The index of the first character
  `end` - The index of the last character + 1
Returns:
  This writer instance

### close

public void close()
Closing this writer has no effect.

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

### flush

public void flush()
Flushing this writer has no effect.

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

### write

public void write(String value)
Writes a String to the `StringBuilder`.

Overrides:
  `write` in class `Writer`
Parameters:
  `value` - The value to write

### write

public void write(char[] value, int offset, int length)
Writes a portion of a character array to the `StringBuilder`.

Specified by:
  `write` in class `Writer`
Parameters:
  `value` - The value to write
  `offset` - The index of the first character
  `length` - The number of characters to write

### getBuilder

public StringBuilder getBuilder()
Returns the underlying builder.

Returns:
  The underlying builder

### toString

public String toString()
Returns `StringBuilder.toString()`.

Overrides:
  `toString` in class `Object`
Returns:
  The contents of the String builder.