java.lang.Object
java.io.Reader
java.io.InputStreamReader
- 所有已实现的接口:
Closeable
,AutoCloseable
,Readable
- 已知子类:
FileReader
InputStreamReader 是从字节流到字符流的桥梁:它读取字节并使用指定的
charset
将它们解码为字符。它使用的字符集可以按名称指定,也可以显式给出,或者可以使用 default charset
。
每次调用 InputStreamReader 的 read() 方法之一都可能导致从底层字节输入流中读取一个或多个字节。为了实现字节到字符的有效转换,可以从底层流中提前读取比满足当前读取操作所需的字节更多的字节。
为了获得最高效率,请考虑将 InputStreamReader 包装在 BufferedReader 中。例如:
BufferedReader in = new BufferedReader(new InputStreamReader(anInputStream));
- 自从:
- 1.1
- 参见:
-
字段摘要
-
构造方法总结
构造方法构造方法描述创建一个使用default charset
的 InputStreamReader。InputStreamReader
(InputStream in, String charsetName) 创建一个使用指定字符集的 InputStreamReader。InputStreamReader
(InputStream in, Charset cs) 创建一个使用给定字符集的 InputStreamReader。InputStreamReader
(InputStream in, CharsetDecoder dec) 创建一个使用给定字符集解码器的 InputStreamReader。 -
方法总结
在类 java.io.Reader 中声明的方法
mark, markSupported, nullReader, read, read, reset, skip, transferTo
-
构造方法详细信息
-
InputStreamReader
创建一个使用default charset
的 InputStreamReader。- 参数:
in
- 输入流- 参见:
-
InputStreamReader
创建一个使用指定字符集的 InputStreamReader。- 参数:
in
- 输入流charsetName
- 支持的名称charset
- 抛出:
UnsupportedEncodingException
- 如果不支持指定的字符集
-
InputStreamReader
创建一个使用给定字符集的 InputStreamReader。- 参数:
in
- 输入流cs
- 一个字符集- 自从:
- 1.4
-
InputStreamReader
创建一个使用给定字符集解码器的 InputStreamReader。- 参数:
in
- 输入流dec
- 字符集解码器- 自从:
- 1.4
-
-
方法详情
-
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 的输入缓冲区不为空,或者如果可以从底层字节流中读取字节,则 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 错误
-