# Readable

public interface **Readable**

|---|---|---|
| Known Indirect Subclasses [BufferedReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/BufferedReader.html), [CharArrayReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/CharArrayReader.html), [CharBuffer](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/CharBuffer.html), [FileReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/FileReader.html), [FilterReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/FilterReader.html), [InputStreamReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html), [LineNumberReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/LineNumberReader.html), [PipedReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/PipedReader.html), [PushbackReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/PushbackReader.html), [Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html), [StringReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/StringReader.html) |---|---| | [BufferedReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/BufferedReader.html) | Reads text from a character-input stream, buffering characters so as to provide for the efficient reading of characters, arrays, and lines. | | [CharArrayReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/CharArrayReader.html) | This class implements a character buffer that can be used as a character-input stream. | | [CharBuffer](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/CharBuffer.html) | A char buffer. | | [FileReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/FileReader.html) | Convenience class for reading character files. | | [FilterReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/FilterReader.html) | Abstract class for reading filtered character streams. | | [InputStreamReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html) | An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified `https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/Charset.html`. | | [LineNumberReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/LineNumberReader.html) | A buffered character-input stream that keeps track of line numbers. | | [PipedReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/PipedReader.html) | Piped character-input streams. | | [PushbackReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/PushbackReader.html) | A character-stream reader that allows characters to be pushed back into the stream. | | [Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html) | Abstract class for reading character streams. | | [StringReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/StringReader.html) | 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://developers.google.com/j2objc/javadoc/jre/reference/java/nio/CharBuffer.html`.

### Public Method Summary

|---|---|
| abstract int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Readable.html#read(java.nio.CharBuffer))([CharBuffer](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/CharBuffer.html) cb) Attempts to read characters into the specified character buffer. |

## Public Methods

#### public abstract int
**read**
([CharBuffer](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/CharBuffer.html) 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.

##### Parameters

| cb | the buffer to read characters into |
|---|---|

##### Returns

- The number of `char` values added to the buffer, or -1 if this source of characters is at its end

##### Throws

| [IOException](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/IOException.html) | if an I/O error occurs |
| [NullPointerException](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/NullPointerException.html) | if cb is null |
| [ReadOnlyBufferException](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/ReadOnlyBufferException.html) | if cb is a read only buffer |
|---|---|