The InputStreamReader class of package, is a bridge from byte streams to character streams: It reads bytes and decodes them into characters using a specified charset. 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 efficiency and ease of use, the InputStreamReader as a general practice is wrapped with BufferedReader. For example:

BufferedReader in = new BufferedReader(new InputStreamReader(;

InputStreamReader Class Syntax

public class InputStreamReader
extends Reader

InputStreamReader Class Compatibility Version

InputStreamReader Class is available since Java 1.1

Basic Usage of InputStreamReader

The InputStreamReader class as part of the package is one of the classes of the java api that is widely used because it provides mechanism in reading a stream. This class offer methods to read file or console input, however since the methods available is hard to use, as a general practice it is recommended to wrap it to more user friendly BufferedReader.

InputStreamReader Method Usage Examples

The following are the detailed list of InputStreamReader methods and descriptions. We have also provided links to examples of each method on the list.

Modifier and Type Method and Description
void close()
Closes the stream and releases any system resources associated with it.
String getEncoding()
Returns the name of the character encoding being used by this stream.
int read()
Reads a single character.
int read(char[] cbuf, int offset, int length)
Reads characters into a portion of an array.
boolean ready()
Tells whether this stream is ready to be read.