InputStream、InputStreamReader、BufferedReader

InputStream

在java中,可以使用InputStream对文件进行读取,就是字节流的输入。在从数据流里读取数据时,为图简单,经常用InputStream.read()方法。这个方法是从流里每次只读取读取一个字节,效率会非常低。更好的方法是用InputStream.read(byte[] b)或者InputStream.read(byte[] b,int off,int len)方法,一次读取多个字节。

参考:http://www.cnblogs.com/MyFavorite/archive/2010/10/19/1855758.html

InputStreamReader

InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码

构造方法 : 
    InputStreamReader isr = new InputStreamReader(InputStream in);

  //构造一个默认编码集的InputStreamReader类 
    InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);

  //构造一个指定编码集的InputStreamReader类

BufferedReader

从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 可以指定缓冲区的大小,或者可使用默认的大小,BufferedReader 流能够读取文本行 , 通过向 BufferedReader 传递一个 Reader 对象, 来创建一个 BufferedReader 对象 , 之所以这样做是因为 FileReader 没有提供读取文本行的功能 

原文地址:https://www.cnblogs.com/ccEmily/p/5680208.html