# InputStreamReader

public class **InputStreamReader** extends [Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html)  

|---|---|---|
| Known Direct Subclasses [FileReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/FileReader.html) |---|---| | [FileReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/FileReader.html) | Convenience class for reading character files. | |||

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`. The charset that it uses
may be specified by name or may be given explicitly, or the platform's
default charset may be accepted.

Each invocation of one of an InputStreamReader's read() methods may
cause one or more bytes to be read from the underlying byte-input stream.
To enable the efficient conversion of bytes to characters, more bytes may
be read ahead from the underlying stream than are necessary to satisfy the
current read operation.

For top efficiency, consider wrapping an InputStreamReader within a
BufferedReader. For example:

```
 BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));
 
```

<br />

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/java/io/BufferedReader.html`
- `https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html`
- `https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/Charset.html`

### Inherited Field Summary

From class [java.io.Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html)

|---|---|---|
| protected [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [lock](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#lock) | The object used to synchronize operations on this stream. |

### Public Constructor Summary

|---|---|
|   | [InputStreamReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream))([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in) Creates an InputStreamReader that uses the default charset. |
|   | [InputStreamReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream,%20java.lang.String))([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in, [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) charsetName) Creates an InputStreamReader that uses the named charset. |
|   | [InputStreamReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream,%20java.nio.charset.Charset))([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in, [Charset](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/Charset.html) cs) Creates an InputStreamReader that uses the given charset. |
|   | [InputStreamReader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream,%20java.nio.charset.CharsetDecoder))([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in, [CharsetDecoder](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/CharsetDecoder.html) dec) Creates an InputStreamReader that uses the given charset decoder. |

### Public Method Summary

|---|---|
| void | [close](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#close())() Closes the stream and releases any system resources associated with it. |
| [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [getEncoding](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#getEncoding())() Returns the name of the character encoding being used by this stream. |
| int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#read())() Reads a single character. |
| int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#read(char[],%20int,%20int))(char\[\] cbuf, int offset, int length) Reads characters into a portion of an array. |
| boolean | [ready](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#ready())() Tells whether this stream is ready to be read. |

### Inherited Method Summary

From class [java.io.Reader](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html)

|---|---|
| abstract void | [close](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#close())() Closes the stream and releases any system resources associated with it. |
| void | [mark](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#mark(int))(int readAheadLimit) Marks the present position in the stream. |
| boolean | [markSupported](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#markSupported())() Tells whether this stream supports the mark() operation. |
| int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#read())() Reads a single character. |
| abstract int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#read(char[],%20int,%20int))(char\[\] cbuf, int off, int len) Reads characters into a portion of an array. |
| int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#read(char[]))(char\[\] cbuf) Reads characters into an array. |
| int | [read](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#read(java.nio.CharBuffer))([CharBuffer](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/CharBuffer.html) target) Attempts to read characters into the specified character buffer. |
| boolean | [ready](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#ready())() Tells whether this stream is ready to be read. |
| void | [reset](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#reset())() Resets the stream. |
| long | [skip](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Reader.html#skip(long))(long n) Skips characters. |

From class [java.lang.Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html)

|---|---|
| [Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) | [clone](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#clone())() Creates and returns a copy of this `Object`. |
| boolean | [equals](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#equals(java.lang.Object))([Object](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html) obj) Compares this instance with the specified object and indicates if they are equal. |
| void | [finalize](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#finalize())() Invoked when the garbage collector has detected that this instance is no longer reachable. |
| final [Class](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html)\<?\> | [getClass](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#getClass())() Returns the unique instance of `https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Class.html` that represents this object's class. |
| int | [hashCode](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#hashCode())() Returns an integer hash code for this object. |
| final void | [notify](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notify())() Causes a thread which is waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| final void | [notifyAll](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#notifyAll())() Causes all threads which are waiting on this object's monitor (by means of calling one of the `wait()` methods) to be woken up. |
| [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) | [toString](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#toString())() Returns a string containing a concise, human-readable description of this object. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long,%20int))(long timeout, int nanos) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait(long))(long timeout) Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object or until the specified timeout expires. |
| final void | [wait](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Object.html#wait())() Causes the calling thread to wait until another thread calls the `notify()` or `notifyAll()` method of this object. |

From interface [java.lang.Readable](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/Readable.html)

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

From interface [java.io.Closeable](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Closeable.html)

|---|---|
| abstract void | [close](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/Closeable.html#close())() Closes this stream and releases any system resources associated with it. |

From interface [java.lang.AutoCloseable](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/AutoCloseable.html)

|---|---|
| abstract void | [close](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/AutoCloseable.html#close())() Closes this resource, relinquishing any underlying resources. |

## Public Constructors

#### public
**InputStreamReader**
([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in)

Creates an InputStreamReader that uses the default charset.

##### Parameters

| in | An InputStream |
|---|---|

#### public
**InputStreamReader**
([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in, [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html) charsetName)

Creates an InputStreamReader that uses the named charset.

##### Parameters

| in | An InputStream |
| charsetName | The name of a supported `https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/Charset.html` |
|---|---|

##### Throws

| [UnsupportedEncodingException](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/UnsupportedEncodingException.html) | If the named charset is not supported |
|---|---|

#### public
**InputStreamReader**
([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in, [Charset](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/Charset.html) cs)

Creates an InputStreamReader that uses the given charset.

##### Parameters

| in | An InputStream |
| cs | A charset |
|---|---|

#### public
**InputStreamReader**
([InputStream](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStream.html) in, [CharsetDecoder](https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/CharsetDecoder.html) dec)

Creates an InputStreamReader that uses the given charset decoder.

##### Parameters

| in | An InputStream |
| dec | A charset decoder |
|---|---|

## Public Methods

#### public void
**close**
()

Closes the stream and releases any system resources associated with
it. Once the stream has been closed, further read(), ready(),
mark(), reset(), or skip() invocations will throw an IOException.
Closing a previously closed stream has no effect.

##### Throws

| [IOException](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/IOException.html) |   |
|---|---|

#### public [String](https://developers.google.com/j2objc/javadoc/jre/reference/java/lang/String.html)
**getEncoding**
()

Returns the name of the character encoding being used by this stream.

If the encoding has an historical name then that name is returned;
otherwise the encoding's canonical name is returned.

If this instance was created with the `https://developers.google.com/j2objc/javadoc/jre/reference/java/io/InputStreamReader.html#InputStreamReader(java.io.InputStream,%20java.lang.String)` constructor then the returned
name, being unique for the encoding, may differ from the name passed to
the constructor. This method will return `null` if the
stream has been closed.

<br />

##### Returns

- The historical name of this encoding, or `null` if the stream has been closed

##### See Also

- `https://developers.google.com/j2objc/javadoc/jre/reference/java/nio/charset/Charset.html`

#### public int
**read**
()

Reads a single character.

##### Returns

- The character read, or -1 if the end of the stream has been reached

##### Throws

| [IOException](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/IOException.html) | If an I/O error occurs |
|---|---|

#### public int
**read**
(char\[\] cbuf, int offset, int length)

Reads characters into a portion of an array.

##### Parameters

| cbuf | Destination buffer |
| offset | Offset at which to start storing characters |
| length | Maximum number of characters to read |
|---|---|

##### Returns

- The number of characters read, or -1 if the end of the stream has been reached

##### Throws

| [IOException](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/IOException.html) | If an I/O error occurs |
|---|---|

#### public boolean
**ready**
()

Tells whether this stream is ready to be read. An InputStreamReader is
ready if its input buffer is not empty, or if bytes are available to be
read from the underlying byte stream.

##### Returns

- True if the next read() is guaranteed not to block for input, false otherwise. Note that returning false does not guarantee that the next read will block.

##### Throws

| [IOException](https://developers.google.com/j2objc/javadoc/jre/reference/java/io/IOException.html) | If an I/O error occurs |
|---|---|