InputStreamReader

 一、InputStreamReader类
1、java.lang.Object
  继承者java.io.Reader
      继承者java.io.InputStreamReader 所有已实现的接口: Closeable, Readable 直接已知子类: FileReader
2、public class InputStreamReader extends Reader 
InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,否则可能接受平台默认的字符集。
每次调用 InputStreamReader 中的一个 read() 方法都会导致从基础输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从基础流读取更多的字节,使其超过满足当前读取操作所需的字节。
为了达到最高效率,可要考虑在 BufferedReader 内包装 InputStreamReader。例如: 
 BufferedReader in   = new BufferedReader(new InputStreamReader(System.in));
3、InputStreamReader(InputStream in)
          创建一个使用默认字符集的 InputStreamReader。
InputStreamReader(InputStream in, Charset cs)
          创建使用给定字符集的 InputStreamReader。
InputStreamReader(InputStream in, CharsetDecoder dec)
          创建使用给定字符集解码器的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName)
          创建使用指定字符集的 InputStreamReader。
4、常用方法
(1)public String getEncoding()
返回此流使用的字符编码的名称。 如果该编码有历史上用过的名称,则返回该名称;否则返回该编码的规范化名称。 如果使用 InputStreamReader(InputStream, String) 构造方法创建此实例,则返回的由此编码生成的唯一名称可能与传递给该构造方法的名称不一样。如果流已经关闭,则此方法可能返回 null
返回:此编码的历史名称,如果流已经关闭,则可能返回 null 另请参见: Charset
(2)public int read()   throws IOException 读取单个字符。
覆盖:Reader 中的 read
返回: 读取的字符,如果已到达流的末尾,则返回 -1
抛出: IOException - 如果发生 I/O 错误
(3)public int read(char[] cbuf,  int offset, int length)   throws IOException将字符读入数组中的某一部分。
指定者:Reader 中的 read
参数: cbuf - 目标缓冲区 offset - 以其处开始存储字符的偏移量 length - 要读取的最大字符数
返回: 读取的字符数,如果已到达流的末尾,则返回 -1
抛出: IOException - 如果发生 I/O 错误

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章