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

# FilterWriter

` public abstract class FilterWriter `   
` ` ` 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.FilterWriter |

<br />

*** ** * ** ***

Abstract class for writing filtered character streams. The abstract class `FilterWriter` itself provides default methods that pass all requests to the contained stream. Subclasses of `FilterWriter` should override some of these methods and may also provide additional methods and fields.

## Summary

| ### Fields ||
|---|---|
| ` protected https://developer.android.com/reference/java/io/Writer` | `https://developer.android.com/reference/java/io/FilterWriter#out` The underlying character-output stream. |

### 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.

| ### Protected constructors ||
|---|---|
| ` https://developer.android.com/reference/java/io/FilterWriter#FilterWriter(java.io.Writer)(https://developer.android.com/reference/java/io/Writer out) ` Create a new filtered writer. |

| ### Public methods ||
|---|---|
| ` void` | ` https://developer.android.com/reference/java/io/FilterWriter#close()() ` Closes the stream, flushing it first. |
| ` void` | ` https://developer.android.com/reference/java/io/FilterWriter#flush()() ` Flushes the stream. |
| ` void` | ` https://developer.android.com/reference/java/io/FilterWriter#write(int)(int c) ` Writes a single character. |
| ` void` | ` https://developer.android.com/reference/java/io/FilterWriter#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. |
| ` void` | ` https://developer.android.com/reference/java/io/FilterWriter#write(char[],%20int,%20int)(char[] cbuf, int off, int len) ` Writes 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.

## Fields

### out

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

```
protected Writer out
```

The underlying character-output stream.

<br />

## Protected constructors

### FilterWriter

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

```
protected FilterWriter (Writer out)
```

Create a new filtered writer.

<br />

| Parameters ||
|---|---|
| `out` | `Writer`: a Writer object to provide the underlying stream. <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/lang/NullPointerException` | if `out` is `null` |

## Public methods

### close

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

```
public void close ()
```

Closes the stream, flushing it first. Once the stream has been closed, further write() or flush() invocations will cause an IOException to be thrown. Closing a previously closed stream has no effect.

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

Flushes the stream.

<br />

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |

### write

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

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

Writes a single character.

<br />

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

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |

### 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)
```

Writes a portion of a string.

<br />

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

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |
| `https://developer.android.com/reference/java/lang/IndexOutOfBoundsException` | If the values of the `off` and `len` parameters cause the corresponding method of the underlying `Writer` to throw an `IndexOutOfBoundsException` |

### 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)
```

Writes a portion of an array of characters.

<br />

| Parameters ||
|---|---|
| `cbuf` | `char`: Buffer of characters to be written <br /> |
| `off` | `int`: Offset from which to start reading characters <br /> |
| `len` | `int`: Number of characters to be written <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | If an I/O error occurs |
| `https://developer.android.com/reference/java/lang/IndexOutOfBoundsException` | If the values of the `off` and `len` parameters cause the corresponding method of the underlying `Writer` to throw an `IndexOutOfBoundsException` |