public class InputStreamReader
extends Reader
java.lang.Object | ||
↳ | java.io.Reader | |
↳ | java.io.InputStreamReader |
Known Direct Subclasses |
InputStreamReader是从字节流到字符流的桥梁:它使用指定的
读取字节并将它们解码为字符。 它使用的字符集可以用名字指定,也可以明确给出,或者可以接受平台的默认字符集。charset
对InputStreamReader的read()方法之一的每次调用都可能导致从底层字节输入流中读取一个或多个字节。 为了能够有效地将字节转换为字符,可以从基础流中读取比满足当前读取操作所需的字节更多的字节。
为获得最高效率,请考虑在BufferedReader中包装InputStreamReader。 例如:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
也可以看看:
Inherited fields |
---|
From class java.io.Reader
|
Public constructors |
|
---|---|
InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader。 |
|
InputStreamReader(InputStream in, String charsetName) 创建一个使用指定字符集的InputStreamReader。 |
|
InputStreamReader(InputStream in, Charset cs) 创建一个使用给定字符集的InputStreamReader。 |
|
InputStreamReader(InputStream in, CharsetDecoder dec) 创建一个使用给定字符集解码器的InputStreamReader。 |
Public methods |
|
---|---|
void |
close() 关闭流并释放与其关联的所有系统资源。 |
String |
getEncoding() 返回此流使用的字符编码的名称。 |
int |
read() 读取一个字符。 |
int |
read(char[] cbuf, int offset, int length) 将字符读入数组的一部分。 |
boolean |
ready() 告诉这个流是否准备好被读取。 |
Inherited methods |
|
---|---|
From class java.io.Reader
|
|
From class java.lang.Object
|
|
From interface java.lang.Readable
|
|
From interface java.io.Closeable
|
|
From interface java.lang.AutoCloseable
|
InputStreamReader (InputStream in)
创建一个使用默认字符集的InputStreamReader。
Parameters | |
---|---|
in |
InputStream : An InputStream |
InputStreamReader (InputStream in, String charsetName)
创建一个使用指定字符集的InputStreamReader。
Parameters | |
---|---|
in |
InputStream : An InputStream |
charsetName |
String : The name of a supported charset
|
Throws | |
---|---|
UnsupportedEncodingException |
If the named charset is not supported |
InputStreamReader (InputStream in, Charset cs)
创建一个使用给定字符集的InputStreamReader。
Parameters | |
---|---|
in |
InputStream : An InputStream |
cs |
Charset : A charset |
InputStreamReader (InputStream in, CharsetDecoder dec)
创建一个使用给定字符集解码器的InputStreamReader。
Parameters | |
---|---|
in |
InputStream : An InputStream |
dec |
CharsetDecoder : A charset decoder |
void close ()
关闭流并释放与其关联的所有系统资源。 一旦流被关闭,read(),ready(),mark(),reset()或skip()调用将会抛出一个IOException异常。 关闭以前关闭的流不起作用。
Throws | |
---|---|
IOException |
String getEncoding ()
返回此流使用的字符编码的名称。
如果编码具有历史名称,则返回该名称; 否则返回编码的规范名称。
如果此实例是使用InputStreamReader(InputStream, String)
构造函数创建的,则返回的名称(对编码唯一)可能与传递给构造函数的名称不同。 如果流已关闭,此方法将返回null
。
Returns | |
---|---|
String |
The historical name of this encoding, or null if the stream has been closed |
也可以看看:
int read ()
读取一个字符。
Returns | |
---|---|
int |
The character read, or -1 if the end of the stream has been reached |
Throws | |
---|---|
IOException |
If an I/O error occurs |
int read (char[] cbuf, int offset, int length)
将字符读入数组的一部分。
Parameters | |
---|---|
cbuf |
char : Destination buffer |
offset |
int : Offset at which to start storing characters |
length |
int : Maximum number of characters to read |
Returns | |
---|---|
int |
The number of characters read, or -1 if the end of the stream has been reached |
Throws | |
---|---|
IOException |
If an I/O error occurs |
boolean ready ()
告诉这个流是否准备好被读取。 如果InputStreamReader的输入缓冲区不为空,或者可以从底层字节流中读取字节,则InputStreamReader已准备就绪。
Returns | |
---|---|
boolean |
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. |
Throws | |
---|---|
IOException |
If an I/O error occurs |