java.io

Class InputStreamReader

public class InputStreamReader extends Reader

This class reads characters from a byte input stream. The characters read are converted from bytes in the underlying stream by a decoding layer. The decoding layer transforms bytes to chars according to an encoding standard. There are many available encodings to choose from. The desired encoding can either be specified by name, or if no encoding is selected, the system default encoding will be used. The system default encoding name is determined from the system property file.encoding. The only encodings that are guaranteed to be availalbe are "8859_1" (the Latin-1 character set) and "UTF8". Unforunately, Java does not provide a mechanism for listing the ecodings that are supported in a given implementation.

Here is a list of standard encoding names that may be available:

It is recommended that applications do not use InputStreamReader's directly. Rather, for efficiency purposes, an object of this class should be wrapped by a BufferedReader.

Due to a deficiency the Java class library design, there is no standard way for an application to install its own byte-character encoding.

See Also: BufferedReader

UNKNOWN: April 22, 1998.

Constructor Summary
InputStreamReader(InputStream in)
This method initializes a new instance of InputStreamReader to read from the specified stream using the default encoding.
InputStreamReader(InputStream in, String encoding_name)
This method initializes a new instance of InputStreamReader to read from the specified stream using a caller supplied character encoding scheme.
InputStreamReader(InputStream in, Charset charset)
Creates an InputStreamReader that uses a decoder of the given charset to decode the bytes in the InputStream into characters.
InputStreamReader(InputStream in, CharsetDecoder decoder)
Creates an InputStreamReader that uses the given charset decoder to decode the bytes in the InputStream into characters.
Method Summary
voidclose()
This method closes this stream, as well as the underlying InputStream.
StringgetEncoding()
This method returns the name of the encoding that is currently in use by this object.
intread(char[] buf, int offset, int length)
This method reads up to length characters from the stream into the specified array starting at index offset into the array.
intread()
Reads an char from the input stream and returns it as an int in the range of 0-65535.
booleanready()
This method checks to see if the stream is ready to be read.
longskip(long count)
Skips the specified number of chars in the stream.

Constructor Detail

InputStreamReader

public InputStreamReader(InputStream in)
This method initializes a new instance of InputStreamReader to read from the specified stream using the default encoding.

Parameters: in The InputStream to read from

InputStreamReader

public InputStreamReader(InputStream in, String encoding_name)
This method initializes a new instance of InputStreamReader to read from the specified stream using a caller supplied character encoding scheme. Note that due to a deficiency in the Java language design, there is no way to determine which encodings are supported.

Parameters: in The InputStream to read from encoding_name The name of the encoding scheme to use

Throws: UnsupportedEncodingException If the encoding scheme requested is not available.

InputStreamReader

public InputStreamReader(InputStream in, Charset charset)
Creates an InputStreamReader that uses a decoder of the given charset to decode the bytes in the InputStream into characters.

Since: 1.4

InputStreamReader

public InputStreamReader(InputStream in, CharsetDecoder decoder)
Creates an InputStreamReader that uses the given charset decoder to decode the bytes in the InputStream into characters.

Since: 1.4

Method Detail

close

public void close()
This method closes this stream, as well as the underlying InputStream.

Throws: IOException If an error occurs

getEncoding

public String getEncoding()
This method returns the name of the encoding that is currently in use by this object. If the stream has been closed, this method is allowed to return null.

Returns: The current encoding name

read

public int read(char[] buf, int offset, int length)
This method reads up to length characters from the stream into the specified array starting at index offset into the array.

Parameters: buf The character array to recieve the data read offset The offset into the array to start storing characters length The requested number of characters to read.

Returns: The actual number of characters read, or -1 if end of stream.

Throws: IOException If an error occurs

read

public int read()
Reads an char from the input stream and returns it as an int in the range of 0-65535. This method also will return -1 if the end of the stream has been reached.

This method will block until the char can be read.

Returns: The char read or -1 if end of stream

Throws: IOException If an error occurs

ready

public boolean ready()
This method checks to see if the stream is ready to be read. It will return true if is, or false if it is not. If the stream is not ready to be read, it could (although is not required to) block on the next read attempt.

Returns: true if the stream is ready to be read, false otherwise

Throws: IOException If an error occurs

skip

public long skip(long count)
Skips the specified number of chars in the stream. It returns the actual number of chars skipped, which may be less than the requested amount.

Parameters: count The requested number of chars to skip

Returns: The actual number of chars skipped.

Throws: IOException If an error occurs