to top
Android APIs
public class

InputStreamReader

extends Reader
java.lang.Object
   ↳ java.io.Reader
     ↳ java.io.InputStreamReader
Known Direct Subclasses

Class Overview

A class for turning a byte stream into a character stream. Data read from the source input stream is converted into characters by either a default or a provided character converter. The default encoding is taken from the "file.encoding" system property. InputStreamReader contains a buffer of bytes read from the source stream and converts these into characters as needed. The buffer size is 8K.

Summary

[Expand]
Inherited Fields
From class java.io.Reader
Public Constructors
InputStreamReader(InputStream in)
Constructs a new InputStreamReader on the InputStream in.
InputStreamReader(InputStream in, String enc)
Constructs a new InputStreamReader on the InputStream in.
InputStreamReader(InputStream in, CharsetDecoder dec)
Constructs a new InputStreamReader on the InputStream in and CharsetDecoder dec.
InputStreamReader(InputStream in, Charset charset)
Constructs a new InputStreamReader on the InputStream in and Charset charset.
Public Methods
void close()
Closes this reader.
String getEncoding()
Returns the historical name of the encoding used by this writer to convert characters to bytes, or null if this writer has been closed.
int read()
Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0.
int read(char[] buffer, int offset, int length)
Reads at most length characters from this reader and stores them at position offset in the character array buf.
boolean ready()
Indicates whether this reader is ready to be read without blocking.
[Expand]
Inherited Methods
From class java.io.Reader
From class java.lang.Object
From interface java.io.Closeable
From interface java.lang.Readable

Public Constructors

public InputStreamReader (InputStream in)

Since: API Level 1

Constructs a new InputStreamReader on the InputStream in. This constructor sets the character converter to the encoding specified in the "file.encoding" property and falls back to ISO 8859_1 (ISO-Latin-1) if the property doesn't exist.

Parameters
in the input stream from which to read characters.

public InputStreamReader (InputStream in, String enc)

Since: API Level 1

Constructs a new InputStreamReader on the InputStream in. The character converter that is used to decode bytes into characters is identified by name by enc. If the encoding cannot be found, an UnsupportedEncodingException error is thrown.

Parameters
in the InputStream from which to read characters.
enc identifies the character converter to use.
Throws
NullPointerException if enc is null.
UnsupportedEncodingException if the encoding specified by enc cannot be found.

public InputStreamReader (InputStream in, CharsetDecoder dec)

Since: API Level 1

Constructs a new InputStreamReader on the InputStream in and CharsetDecoder dec.

Parameters
in the source InputStream from which to read characters.
dec the CharsetDecoder used by the character conversion.

public InputStreamReader (InputStream in, Charset charset)

Since: API Level 1

Constructs a new InputStreamReader on the InputStream in and Charset charset.

Parameters
in the source InputStream from which to read characters.
charset the Charset that defines the character converter

Public Methods

public void close ()

Since: API Level 1

Closes this reader. This implementation closes the source InputStream and releases all local storage.

Throws
IOException if an error occurs attempting to close this reader.

public String getEncoding ()

Since: API Level 1

Returns the historical name of the encoding used by this writer to convert characters to bytes, or null if this writer has been closed. Most callers should probably keep track of the String or Charset they passed in; this method may not return the same name.

public int read ()

Since: API Level 1

Reads a single character from this reader and returns it as an integer with the two higher-order bytes set to 0. Returns -1 if the end of the reader has been reached. The byte value is either obtained from converting bytes in this reader's buffer or by first filling the buffer from the source InputStream and then reading from the buffer.

Returns
  • the character read or -1 if the end of the reader has been reached.
Throws
IOException if this reader is closed or some other I/O error occurs.

public int read (char[] buffer, int offset, int length)

Since: API Level 1

Reads at most length characters from this reader and stores them at position offset in the character array buf. Returns the number of characters actually read or -1 if the end of the reader has been reached. The bytes are either obtained from converting bytes in this reader's buffer or by first filling the buffer from the source InputStream and then reading from the buffer.

Parameters
buffer the array to store the characters read.
offset the initial position in buf to store the characters read from this reader.
length the maximum number of characters to read.
Returns
  • the number of characters read or -1 if the end of the reader has been reached.
Throws
IndexOutOfBoundsException if offset < 0 or length < 0, or if offset + length is greater than the length of buf.
IOException if this reader is closed or some other I/O error occurs.

public boolean ready ()

Since: API Level 1

Indicates whether this reader is ready to be read without blocking. If the result is true, the next read() will not block. If the result is false then this reader may or may not block when read() is called. This implementation returns true if there are bytes available in the buffer or the source stream has bytes available.

Returns
  • true if the receiver will not block when read() is called, false if unknown or blocking will occur.
Throws
IOException if this reader is closed or some other I/O error occurs.