Java常用API 之 java.io.InputStreamReader(附解析和示例)_10


public class InputStreamReader
extends Reader
    InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节。

    为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如:

BufferedReader in
   = new BufferedReader(new InputStreamReader(System.in));

构造函数
InputStreamReader(InputStream in)  创建一个使用默认字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs)  创建使用给定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)  创建使用给定字符集解码器的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName)  创建使用指定字符集的 InputStreamReader。

对象方法(前两个方法在父类是抽象方法)
 void close( )  关闭该流并释放与之关联的所有资源。
int read(char[ ] cbuf, int offset, int length)  将字符读入数组中的某一部分。
int read( )  读取单个字符。
String getEncoding() 

返回此流使用的字符编码的名称。

如果该编码有历史上用过的名称,则返回该名称;否则返回该编码的规范化名称。
如果使用 InputStreamReader(InputStream, String) 构造方法创建此实例,则返回的由此编码生成的唯一名称可能与传递给该构造方法的名称不一样。如果流已经关闭,则此方法将会返回 null。

boolean ready( )  判断此流是否已经准备好用于读取。
其他方法直接继承自java.io.Reader类。


猜你喜欢

转载自blog.csdn.net/coder__666/article/details/80265380