Java 之 InputStreamReader 類


InputStreamReader 類

  1、概述

    轉換流 java.io.InputStreamReader ,是Reader的子類,是從字節流到字符流的橋梁。

     該類讀取字節,並使用指定的字符集將其解碼為字符。它的字符集可以由名稱指定,也可以接受平台的默認字符集。

  2、繼承自父類的共性成員方法

    該類繼承於 Reader 類,繼承了父類的共性成員方法:

int read() 讀取單個字符並返回。
int read(char[] cbuf)一次讀取多個字符,將字符讀入數組。
void close() 關閉該流並釋放與之關聯的所有資源。

  3、構造方法

InputStreamReader(InputStream in) 創建一個使用默認字符集的 InputStreamReader。
InputStreamReader(InputStream in, String charsetName) 創建使用指定字符集的 InputStreamReader。

    參數:

     InputStream in:字節輸入流,用來讀取文件中保存的字節

     String charsetName:指定的編碼表名稱,不區分大小寫,可以是utf-8/UTF-8,gbk/GBK,...不指定默認使用UTF-8

  4、使用步驟

     ① 創建InputStreamReader對象,構造方法中傳遞字節輸入流和指定的編碼表名稱

    ② 使用InputStreamReader對象中的方法read讀取文件

    ③ 釋放資源

    注意:構造方法中指定的編碼表名稱要和文件的編碼相同,否則會發生亂碼

  Demo:

 1  public static void main(String[] args) throws IOException {  2          //1.創建InputStreamReader對象,構造方法中傳遞字節輸入流和指定的編碼表名稱  3         //InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\gbk.txt"),"UTF-8");//???  4          //將匿名對象流中的字節流按照GBK進行解碼為字符流
 5          InputStreamReader isr = new InputStreamReader(new FileInputStream("E:\\gbk.txt"),"GBK");//你好  6 
 7          //2.使用InputStreamReader對象中的方法read讀取文件
 8         int len = 0;  9          while((len = isr.read())!=-1){ 10             System.out.println((char)len); 11  } 12          //3.釋放資源
13  isr.close(); 14   }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM