java.lang.Object
java.io.Reader
java.io.InputStreamReader
- 所有已实现的接口:
-
Closeable
,AutoCloseable
,Readable
- 直接已知的子类:
-
FileReader
InputStreamReader是从字节流到字符流的桥梁: 它读取字节并使用指定的
字符集
将它们解码为字符。它使用的字符集可以通过名称指定,也可以明确给出,或者可以使用默认字符集
。
每次调用InputStreamReader的read()方法之一都可能会从底层字节输入流中读取一个或多个字节。为了实现字节到字符的高效转换,可能会从底层流中预先读取比当前读取操作所需的更多字节。
为了实现最高效率,请考虑在BufferedReader中包装InputStreamReader。例如:
BufferedReader in = new BufferedReader(new InputStreamReader(anInputStream));
- 自1.1版本起:
- 1.1
- 参见:
-
Field Summary
-
Constructor Summary
ConstructorDescription创建一个使用默认字符集
的InputStreamReader。InputStreamReader
(InputStream in, String charsetName) 创建一个使用指定名称字符集的InputStreamReader。InputStreamReader
(InputStream in, Charset cs) 创建一个使用给定字符集的InputStreamReader。InputStreamReader
(InputStream in, CharsetDecoder dec) 创建一个使用给定字符集解码器的InputStreamReader。 -
Method Summary
Methods declared in class java.io.Reader
mark, markSupported, nullReader, read, read, reset, skip, transferTo
-
Constructor Details
-
InputStreamReader
创建一个使用默认字符集
的InputStreamReader。- 参数:
-
in
- 一个InputStream - 参见:
-
InputStreamReader
创建一个使用指定名称字符集的InputStreamReader。- 参数:
-
in
- 一个InputStream -
charsetName
- 支持的字符集
的名称 - 抛出:
-
UnsupportedEncodingException
- 如果不支持指定的字符集
-
InputStreamReader
创建一个使用给定字符集的InputStreamReader。- 参数:
-
in
- 一个InputStream -
cs
- 一个字符集 - 自1.4版本起:
- 1.4
-
InputStreamReader
创建一个使用给定字符集解码器的InputStreamReader。- 参数:
-
in
- 一个InputStream -
dec
- 一个字符集解码器 - 自1.4版本起:
- 1.4
-
-
Method Details
-
getEncoding
返回此流正在使用的字符编码的名称。如果编码具有历史名称,则返回该名称;否则返回编码的规范名称。
如果此实例是使用
InputStreamReader(InputStream, String)
构造函数创建的,则返回的名称,作为编码的唯一标识,可能与传递给构造函数的名称不同。如果流已关闭,则此方法将返回null
。- 返回:
-
此编码的历史名称,如果流已关闭则返回
null
- 参见:
-
read
读取单个字符。- 覆盖:
-
read
在类中Reader
- 返回:
- 读取的字符,如果已到达流的末尾则返回-1
- 抛出:
-
IOException
- 如果发生I/O错误
-
read
将字符读入数组的一部分。此方法将阻塞,直到有一些输入可用,发生I/O错误,或者到达流的末尾。如果
len
为零,则不会读取任何字符并返回0
;否则,将尝试读取至少一个字符。如果没有字符可用,因为流已到达末尾,则返回值为-1
;否则,将读取至少一个字符并存储到cbuf
中。- 指定者:
-
read
在类中Reader
- 参数:
-
cbuf
- 目标缓冲区 -
off
- 开始存储字符的偏移量 -
len
- 要读取的最大字符数 - 返回:
- 读取的字符数,如果已到达流的末尾则返回-1
- 抛出:
-
IndexOutOfBoundsException
- 如果off
为负,或者len
为负,或者len
大于cbuf.length - off
-
IOException
- 如果发生I/O错误
-
ready
告知此流是否准备好进行读取。如果InputStreamReader准备好,其输入缓冲区不为空,或者可以从底层字节流中读取字节,则它是准备好的。- 覆盖:
-
ready
在类中Reader
- 返回:
- 如果下一个read()保证不会因为输入而阻塞则为True,否则为False。请注意,返回False并不保证下一个读取将阻塞。
- 抛出:
-
IOException
- 如果发生I/O错误
-
close
从类中复制的描述:Reader
关闭流并释放与其关联的任何系统资源。一旦流被关闭,进一步的read()、ready()、mark()、reset()或skip()调用将抛出一个IOException。关闭先前关闭的流没有任何效果。- 指定者:
-
close
在接口中AutoCloseable
- 指定者:
-
close
在接口中Closeable
- 指定者:
-
close
在类中Reader
- 抛出:
-
IOException
- 如果发生I/O错误
-