Added in [API level 1](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/java/lang/Readable#pubmethods)

# Readable

` public interface Readable `   
` `

|---|
| java.lang.Readable |

Known indirect subclasses [BufferedReader](https://developer.android.com/reference/java/io/BufferedReader), [CharArrayReader](https://developer.android.com/reference/java/io/CharArrayReader), [CharBuffer](https://developer.android.com/reference/java/nio/CharBuffer), [FileReader](https://developer.android.com/reference/java/io/FileReader), [FilterReader](https://developer.android.com/reference/java/io/FilterReader), [InputStreamReader](https://developer.android.com/reference/java/io/InputStreamReader), [LineNumberReader](https://developer.android.com/reference/java/io/LineNumberReader), [PipedReader](https://developer.android.com/reference/java/io/PipedReader), [PushbackReader](https://developer.android.com/reference/java/io/PushbackReader), [Reader](https://developer.android.com/reference/java/io/Reader), [StringReader](https://developer.android.com/reference/java/io/StringReader) [BufferedReader](https://developer.android.com/reference/java/io/BufferedReader) Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines. [CharArrayReader](https://developer.android.com/reference/java/io/CharArrayReader) This class implements a character buffer that can be used as a character-input stream. [CharBuffer](https://developer.android.com/reference/java/nio/CharBuffer) A char buffer. [FileReader](https://developer.android.com/reference/java/io/FileReader) Reads text from character files using a default buffer size. [FilterReader](https://developer.android.com/reference/java/io/FilterReader) Abstract class for reading filtered character streams. [InputStreamReader](https://developer.android.com/reference/java/io/InputStreamReader) An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified `https://developer.android.com/reference/java/nio/charset/Charset`. [LineNumberReader](https://developer.android.com/reference/java/io/LineNumberReader) A buffered character-input stream that keeps track of line numbers. [PipedReader](https://developer.android.com/reference/java/io/PipedReader) Piped character-input streams. [PushbackReader](https://developer.android.com/reference/java/io/PushbackReader) A character-stream reader that allows characters to be pushed back into the stream. [Reader](https://developer.android.com/reference/java/io/Reader) Abstract class for reading character streams. [StringReader](https://developer.android.com/reference/java/io/StringReader) A character stream whose source is a string.   

*** ** * ** ***

A `Readable` is a source of characters. Characters from a `Readable` are made available to callers of the read method via a `https://developer.android.com/reference/java/nio/CharBuffer`.

## Summary

| ### Public methods ||
|---|---|
| ` abstract int` | ` https://developer.android.com/reference/java/lang/Readable#read(java.nio.CharBuffer)(https://developer.android.com/reference/java/nio/CharBuffer cb) ` Attempts to read characters into the specified character buffer. |

## Public methods

### read

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

```
public abstract int read (CharBuffer cb)
```

Attempts to read characters into the specified character buffer. The buffer is used as a repository of characters as-is: the only changes made are the results of a put operation. No flipping or rewinding of the buffer is performed.

<br />

| Parameters ||
|---|---|
| `cb` | `CharBuffer`: the buffer to read characters into <br /> |

| Returns ||
|---|---|
| `int` | The number of `char` values added to the buffer, or -1 if this source of characters is at its end <br /> |

| Throws ||
|---|---|
| `https://developer.android.com/reference/java/io/IOException` | if an I/O error occurs |
| `https://developer.android.com/reference/java/lang/NullPointerException` | if cb is null |
| `https://developer.android.com/reference/java/nio/ReadOnlyBufferException` | if cb is a read only buffer |