Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Inherited Fields](https://developer.android.com/reference/java/io/StringWriter#inhfields) \| [Ctors](https://developer.android.com/reference/java/io/StringWriter#pubctors) \| [Methods](https://developer.android.com/reference/java/io/StringWriter#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/java/io/StringWriter#inhmethods)

# StringWriter

` public class StringWriter `   
` ` ` extends https://developer.android.com/reference/java/io/Writer ` ` `

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [java.io.Writer](https://developer.android.com/reference/java/io/Writer) ||
|   | ↳ | java.io.StringWriter |

<br />

*** ** * ** ***

A character stream that collects its output in a string buffer, which can then be used to construct a string.

Closing a `StringWriter` has no effect. The methods in this class can be called after the stream has been closed without generating an `IOException`.

## Summary

### Inherited fields

From class `https://developer.android.com/reference/java/io/Writer` ` protected https://developer.android.com/reference/java/lang/Object` `https://developer.android.com/reference/java/io/Writer#lock`

The object used to synchronize operations on this stream.

| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/java/io/StringWriter#StringWriter()() ` Create a new string writer using the default initial string-buffer size. |
| ` https://developer.android.com/reference/java/io/StringWriter#StringWriter(int)(int initialSize) ` Create a new string writer using the specified initial string-buffer size. |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/java/io/StringWriter` | ` https://developer.android.com/reference/java/io/StringWriter#append(char)(char c) ` Appends the specified character to this writer. |
| ` https://developer.android.com/reference/java/io/StringWriter` | ` https://developer.android.com/reference/java/io/StringWriter#append(java.lang.CharSequence,%20int,%20int)(https://developer.android.com/reference/java/lang/CharSequence csq, int start, int end) ` Appends a subsequence of the specified character sequence to this writer. |
| ` https://developer.android.com/reference/java/io/StringWriter` | ` https://developer.android.com/reference/java/io/StringWriter#append(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence csq) ` Appends the specified character sequence to this writer. |
| ` void` | ` https://developer.android.com/reference/java/io/StringWriter#close()() ` Closing a `StringWriter` has no effect. |
| ` void` | ` https://developer.android.com/reference/java/io/StringWriter#flush()() ` Flush the stream. |
| ` https://developer.android.com/reference/java/lang/StringBuffer` | ` https://developer.android.com/reference/java/io/StringWriter#getBuffer()() ` Return the string buffer itself. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/java/io/StringWriter#toString()() ` Return the buffer's current value as a string. |
| ` void` | ` https://developer.android.com/reference/java/io/StringWriter#write(java.lang.String)(https://developer.android.com/reference/java/lang/String str) ` Write a string. |
| ` void` | ` https://developer.android.com/reference/java/io/StringWriter#write(int)(int c) ` Write a single character. |
| ` void` | ` https://developer.android.com/reference/java/io/StringWriter#write(java.lang.String,%20int,%20int)(https://developer.android.com/reference/java/lang/String str, int off, int len) ` Write a portion of a string. |
| ` void` | ` https://developer.android.com/reference/java/io/StringWriter#write(char[],%20int,%20int)(char[] cbuf, int off, int len) ` Write a portion of an array of characters. |

### Inherited methods

From class ` https://developer.android.com/reference/java/io/Writer ` ` https://developer.android.com/reference/java/io/Writer` ` https://developer.android.com/reference/java/io/Writer#append(char)(char c) `

Appends the specified character to this writer.
` https://developer.android.com/reference/java/io/Writer` ` https://developer.android.com/reference/java/io/Writer#append(java.lang.CharSequence,%20int,%20int)(https://developer.android.com/reference/java/lang/CharSequence csq, int start, int end) `

Appends a subsequence of the specified character sequence to this writer.
` https://developer.android.com/reference/java/io/Writer` ` https://developer.android.com/reference/java/io/Writer#append(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence csq) `

Appends the specified character sequence to this writer.
` abstract void` ` https://developer.android.com/reference/java/io/Writer#close()() `

Closes the stream, flushing it first.
` abstract void` ` https://developer.android.com/reference/java/io/Writer#flush()() `

Flushes the stream.
` static https://developer.android.com/reference/java/io/Writer` ` https://developer.android.com/reference/java/io/Writer#nullWriter()() `

Returns a new `Writer` which discards all characters.
` void` ` https://developer.android.com/reference/java/io/Writer#write(java.lang.String)(https://developer.android.com/reference/java/lang/String str) `

Writes a string.
` void` ` https://developer.android.com/reference/java/io/Writer#write(int)(int c) `

Writes a single character.
` void` ` https://developer.android.com/reference/java/io/Writer#write(java.lang.String,%20int,%20int)(https://developer.android.com/reference/java/lang/String str, int off, int len) `

Writes a portion of a string.
` abstract void` ` https://developer.android.com/reference/java/io/Writer#write(char[],%20int,%20int)(char[] cbuf, int off, int len) `

Writes a portion of an array of characters.
` void` ` https://developer.android.com/reference/java/io/Writer#write(char[])(char[] cbuf) `

Writes an array of characters.
From class ` https://developer.android.com/reference/java/lang/Object ` ` https://developer.android.com/reference/java/lang/Object` ` https://developer.android.com/reference/java/lang/Object#clone()() `

Creates and returns a copy of this object.
` boolean` ` https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) `

Indicates whether some other object is "equal to" this one.
` void` ` https://developer.android.com/reference/java/lang/Object#finalize()() `

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.
` final https://developer.android.com/reference/java/lang/Class<?>` ` https://developer.android.com/reference/java/lang/Object#getClass()() `

Returns the runtime class of this `Object`.
` int` ` https://developer.android.com/reference/java/lang/Object#hashCode()() `

Returns a hash code value for the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#notify()() `

Wakes up a single thread that is waiting on this object's monitor.
` final void` ` https://developer.android.com/reference/java/lang/Object#notifyAll()() `

Wakes up all threads that are waiting on this object's monitor.
` https://developer.android.com/reference/java/lang/String` ` https://developer.android.com/reference/java/lang/Object#toString()() `

Returns a string representation of the object.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis) `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*, or until a certain amount of real time has elapsed.
` final void` ` https://developer.android.com/reference/java/lang/Object#wait()() `

Causes the current thread to wait until it is awakened, typically by being *notified* or *interrupted*.
From interface ` https://developer.android.com/reference/java/lang/Appendable ` ` abstract https://developer.android.com/reference/java/lang/Appendable` ` https://developer.android.com/reference/java/lang/Appendable#append(char)(char c) `

Appends the specified character to this `Appendable`.
` abstract https://developer.android.com/reference/java/lang/Appendable` ` https://developer.android.com/reference/java/lang/Appendable#append(java.lang.CharSequence,%20int,%20int)(https://developer.android.com/reference/java/lang/CharSequence csq, int start, int end) `

Appends a subsequence of the specified character sequence to this `Appendable`.
` abstract https://developer.android.com/reference/java/lang/Appendable` ` https://developer.android.com/reference/java/lang/Appendable#append(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence csq) `

Appends the specified character sequence to this `Appendable`.
From interface ` https://developer.android.com/reference/java/io/Closeable ` ` abstract void` ` https://developer.android.com/reference/java/io/Closeable#close()() `

Closes this stream and releases any system resources associated with it.
From interface ` https://developer.android.com/reference/java/io/Flushable ` ` abstract void` ` https://developer.android.com/reference/java/io/Flushable#flush()() `

Flushes this stream by writing any buffered output to the underlying stream.
From interface ` https://developer.android.com/reference/java/lang/AutoCloseable ` ` abstract void` ` https://developer.android.com/reference/java/lang/AutoCloseable#close()() `

Closes this resource, relinquishing any underlying resources.

## Public constructors

### StringWriter

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StringWriter ()
```

Create a new string writer using the default initial string-buffer size.

<br />

### StringWriter

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StringWriter (int initialSize)
```

Create a new string writer using the specified initial string-buffer size.

<br />

| Parameters ||
|---|---|
| `initialSize` | `int`: The number of `char` values that will fit into this buffer before it is automatically expanded <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IllegalArgumentException` | If `initialSize` is negative |

## Public methods

### append

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StringWriter append (char c)
```

Appends the specified character to this writer.

An invocation of this method of the form `out.append(c)` behaves in exactly the same way as the invocation

```
    out.write(c) 
```

<br />

<br />

| Parameters ||
|---|---|
| `c` | `char`: The 16-bit character to append <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/io/StringWriter` | This writer <br /> |

### append

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StringWriter append (CharSequence csq, 
                int start, 
                int end)
```

Appends a subsequence of the specified character sequence to this writer.

An invocation of this method of the form `out.append(csq, start, end)` when `csq` is not `null`, behaves in exactly the same way as the invocation

    out.write(csq.subSequence(start, end).toString())

<br />

<br />

| Parameters ||
|---|---|
| `csq` | `CharSequence`: The character sequence from which a subsequence will be appended. If `csq` is `null`, then characters will be appended as if `csq` contained the four characters `"null"`. <br /> |
| `start` | `int`: The index of the first character in the subsequence <br /> |
| `end` | `int`: The index of the character following the last character in the subsequence <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/io/StringWriter` | This writer <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IndexOutOfBoundsException` | If `start` or `end` are negative, `start` is greater than `end`, or `end` is greater than `csq.length()` |

### append

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StringWriter append (CharSequence csq)
```

Appends the specified character sequence to this writer.

An invocation of this method of the form `out.append(csq)` behaves in exactly the same way as the invocation

```
    out.write(csq.toString()) 
```

Depending on the specification of `toString` for the character sequence `csq`, the entire sequence may not be appended. For instance, invoking the `toString` method of a character buffer will return a subsequence whose content depends upon the buffer's position and limit.

<br />

| Parameters ||
|---|---|
| `csq` | `CharSequence`: The character sequence to append. If `csq` is `null`, then the four characters `"null"` are appended to this writer. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/io/StringWriter` | This writer <br /> |

### close

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void close ()
```

Closing a `StringWriter` has no effect. The methods in this class can be called after the stream has been closed without generating an `IOException`.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` |   |

### flush

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void flush ()
```

Flush the stream.

<br />

### getBuffer

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public StringBuffer getBuffer ()
```

Return the string buffer itself.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/StringBuffer` | StringBuffer holding the current buffer value. <br /> |

### toString

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public String toString ()
```

Return the buffer's current value as a string.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |

### write

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void write (String str)
```

Write a string.

<br />

| Parameters ||
|---|---|
| `str` | `String`: String to be written <br /> |

### write

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void write (int c)
```

Write a single character.

<br />

| Parameters ||
|---|---|
| `c` | `int`: int specifying a character to be written <br /> |

### write

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

```
public void write (String str, 
                int off, 
                int len)
```

Write a portion of a string.

<br />

| Parameters ||
|---|---|
| `str` | `String`: String to be written <br /> |
| `off` | `int`: Offset from which to start writing characters <br /> |
| `len` | `int`: Number of characters to write <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IndexOutOfBoundsException` | If `off` is negative, or `len` is negative, or `off + len` is negative or greater than the length of the given string |

### write

Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels)

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

Write a portion of an array of characters.

<br />

| Parameters ||
|---|---|
| `cbuf` | `char`: Array of characters <br /> |
| `off` | `int`: Offset from which to start writing characters <br /> |
| `len` | `int`: Number of characters to write <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/IndexOutOfBoundsException` | If `off` is negative, or `len` is negative, or `off + len` is negative or greater than the length of the given array |