java.io
Class InputStreamReader
- Closeable, Readable
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:
- 8859_1 (ISO-8859-1/Latin-1)
- 8859_2 (ISO-8859-2/Latin-2)
- 8859_3 (ISO-8859-3/Latin-3)
- 8859_4 (ISO-8859-4/Latin-4)
- 8859_5 (ISO-8859-5/Latin-5)
- 8859_6 (ISO-8859-6/Latin-6)
- 8859_7 (ISO-8859-7/Latin-7)
- 8859_8 (ISO-8859-8/Latin-8)
- 8859_9 (ISO-8859-9/Latin-9)
- ASCII (7-bit ASCII)
- UTF8 (UCS Transformation Format-8)
- More later
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.
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.
|
void | close() - This method closes this stream, as well as the underlying
InputStream .
|
String | getEncoding() - This method returns the name of the encoding that is currently in use
by this object.
|
int | read() - Reads an char from the input stream and returns it
as an int in the range of 0-65535.
|
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.
|
boolean | ready() - This method checks to see if the stream is ready to be read.
|
long | skip(long count) - Skips the specified number of chars in the stream.
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
InputStreamReader
public InputStreamReader(InputStream in)
This method initializes a new instance of InputStreamReader
to read from the specified stream using the default encoding.
in
- The InputStream
to read from
InputStreamReader
public InputStreamReader(InputStream in,
String encoding_name)
throws UnsupportedEncodingException
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.
in
- The InputStream
to read fromencoding_name
- The name of the encoding scheme to use
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.
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
.
- The current encoding name
read
public int read()
throws IOException
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.
- read in interface Reader
- The char read or -1 if end of stream
read
public int read(char[] buf,
int offset,
int length)
throws IOException
This method reads up to length
characters from the stream into
the specified array starting at index offset
into the
array.
buf
- The character array to recieve the data readoffset
- The offset into the array to start storing characterslength
- The requested number of characters to read.
- The actual number of characters read, or -1 if end of stream.
ready
public boolean ready()
throws IOException
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.
- ready in interface Reader
true
if the stream is ready to be read,
false
otherwise
skip
public long skip(long count)
throws IOException
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.
- skip in interface Reader
count
- The requested number of chars to skip
- The actual number of chars skipped.
InputStreamReader.java -- Reader than transforms bytes to chars
Copyright (C) 1998, 1999, 2001, 2003, 2004, 2005, 2006
Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.