FileDocCategorySizeDatePackage
InputStreamReader.javaAPI DocphoneME MR2 API (J2ME)6581Wed May 02 17:59:56 BST 2007java.io

InputStreamReader

public class InputStreamReader extends Reader
An InputStreamReader is a bridge from byte streams to character streams: It reads bytes and translates them into characters. The encoding that it uses may be specified by name, or the platform's default encoding 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.

version
12/17/01 (CLDC 1.1)
see
java.io.Reader
see
java.io.UnsupportedEncodingException
since
CLDC 1.0

Fields Summary
private Reader
in
The underlying character input stream.
Constructors Summary
public InputStreamReader(InputStream is)
Create an InputStreamReader that uses the default character encoding.

param
is An InputStream

        in = Helper.getStreamReader(is);
    
public InputStreamReader(InputStream is, String enc)
Create an InputStreamReader that uses the named character encoding.

param
is An InputStream
param
enc The name of a supported character encoding
exception
UnsupportedEncodingException If the named encoding is not supported

        in = Helper.getStreamReader(is, enc);
    
Methods Summary
public voidclose()
Close the stream. Closing a previously closed stream has no effect.

exception
IOException If an I/O error occurs

        if (in != null) {
            in.close();
            in = null;
        }
    
private voidensureOpen()
Check to make sure that the stream has not been closed

        if (in == null) {
            throw new IOException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                       "Stream closed"
/* #endif */
            );
        }
    
public voidmark(int readAheadLimit)
Mark the present position in the stream.

param
readAheadLimit Limit on the number of characters that may be read while still preserving the mark. After reading this many characters, attempting to reset the stream may fail.
exception
IOException If the stream does not support mark(), or if some other I/O error occurs

        ensureOpen();
        if (in.markSupported()) {
            in.mark(readAheadLimit);
        } else {
            throw new IOException(
/* #ifdef VERBOSE_EXCEPTIONS */
/// skipped                       "mark() not supported"
/* #endif */
            );
        }
    
public booleanmarkSupported()
Tell whether this stream supports the mark() operation.

return
true if and only if this stream supports the mark operation.

        if (in == null) {
            return false;
        }
        return in.markSupported();
    
public intread()
Read a single character.

return
The character read, or -1 if the end of the stream has been reached
exception
IOException If an I/O error occurs

        ensureOpen();
        return in.read();
    
public intread(char[] cbuf, int off, int len)
Read characters into a portion of an array.

param
cbuf Destination buffer
param
off Offset at which to start storing characters
param
len Maximum number of characters to read
return
The number of characters read, or -1 if the end of the stream has been reached
exception
IOException If an I/O error occurs

        ensureOpen();
        if ((off < 0) || (off > cbuf.length) || (len < 0) ||
            ((off + len) > cbuf.length) || ((off + len) < 0)) {
            throw new IndexOutOfBoundsException();
        } else if (len == 0) {
            return 0;
        }
        return in.read(cbuf, off, len);
    
public booleanready()
Tell whether this stream is ready to be read.

return
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.
exception
IOException If an I/O error occurs

        ensureOpen();
        return in.ready();
    
public voidreset()
Reset the stream.

exception
IOException If an I/O error occurs

        ensureOpen();
        in.reset();
    
public longskip(long n)
Skip characters.

param
n The number of characters to skip
return
The number of characters actually skipped
exception
IllegalArgumentException If n is negative.
exception
IOException If an I/O error occurs

        ensureOpen();
        return in.skip(n);