InputStreamReader 和FileReader的區別

InputStreamReader 和 BufferedReader 。其中最重要的類是 InputStreamReader ,它是字節轉換爲字符的橋樑。 你可以在構造器重指定編碼的方式,如果不指定的話將採用底層操作系統的默認編碼方式,例如 GBK 等。

FileReader 與 InputStreamReader 涉及編碼轉換 ( 指定編碼方式或者採用 os 默認編碼 ) ,可

能在不同的平臺上出現亂碼現象!而 FileInputStream 以二進制方式處理,不會出現亂碼現象 .

 

FileInputStream字節流 是以一個一個字節來讀。
FileReader字符流 是以一個一個字符來讀取的。


InputStreamReader 字節轉換爲字符。


BufferedReader 讀取大量字符流。

InputStream 一個字節一個字節讀取,每次讀取都執行一次I/O.

 

BufferedReader bufReader = null;
InputStreamReader isr = null;

FileReader fr = null;
try {
for(String fileName:fileNames){

   方法一:
    isr = new InputStreamReader(new FileInputStream("D:\test.txt"), "utf-8");
    bufReader = new BufferedReader(isr);

   方法二:

    fr = new FileReader("D:\test.txt");
    bufReader = new BufferedReader(fr);
    
    while (bufReader.ready()) {
     // 1. 得到每一行數據  
     String dataLine = bufReader.readLine();

     }

}


參考:http://blog.sina.com.cn/s/blog_6fda308501012mf0.html

http://www.360doc.com/content/12/1009/16/10630456_240458246.shtml

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