Java —— 轉換流

Alex_McAvoy發表於2018-10-28

【轉換流】

轉換流用於將位元組流轉換為字元流,其根據編碼方式,將位元組轉換為字元。

編碼:字串 ——> 字元陣列

解碼:位元組陣列 ——> 字串

【InputStreamReader 類】

InputStreamReader 類是位元組流通往字元流的橋樑,其可以根據指定的編碼方式,將位元組輸入流轉換為字元輸入流,其方法均是從 Reader 類繼承的,建立檔案字元輸入流常用的構造方法有以下兩種:

  • InputStreamReader(InputStream in):該方法使用預設字符集建立例項物件
  • InputStreamReader(InputStream in,String cname):使用已命名的字元編碼方式建立例項物件,cname 為使用的編碼方式名
/* 
 * 在 D 盤存在 Example.txt 檔案,檔案內容為 Hello World!
 * 建立一個 File 類物件,然後建立檔案字元輸入流物件 fis
 * 從輸入流中讀取檔案的資訊
 */

File file = new File("D:\\Example.txt");//建立一個File類物件
try{
    System.out.print("The content is:");

    //建立一個FileInputStream類物件
    fis=new FileInputStream(file);

    //建立一個InputSteamReader類物件
    InputSteamReader isr=new InputStreamReader(fis);
    
    //呼叫InputSteamReader類方法來讀取檔案資訊
    int rs=isr.read();
    while( res!=-1 ){ //讀取輸入流資料
        System.out.print(res);
        res=isr.read();
    }

    //關閉輸入流
    fis.close();
} catch (IOException e){
    e.printStackTrace();
}

【OutputStreamWriter 類】

OutputStreamWriter 類是位元組流通往字元流的橋樑,其可以根據指定的編碼方式,將位元組輸出流轉換為字元輸出流,其方法均是從 Writer 類繼承的,建立檔案字元輸出流常用的構造方法有以下兩種:

  • OutputStreamWriter(OutputStream in):該方法使用預設字符集建立例項物件
  • OutputStreamWriter(OutputStream in,String cname):使用已命名的字元編碼方式建立例項物件,cname 為使用的編碼方式名
/* 
 * 建立一個 File 類物件,首先判斷此配置檔案是否存在
 * 如果不存在,則呼叫方法建立一個檔案
 * 建立檔案輸出流,寫入到檔案,最終結果存入 Example.txt 檔案
 */

File file = new File("D:\\Example.txt");//建立一個File類物件
try{
    //判斷檔案是否存在
    if(!file.exists())
        file.createNewFile();

    //建立一個FileOutputStream類物件
    FileOutputStream fos=new FileOutputStream(file,true);

    //建立一個OutputSteamWriter類物件
    OutputSteamWriter out=new OutputSteamWriter(fos)
    
    //呼叫OutputSteamWriter類方法來寫入檔案資訊
    out.write();

    //關閉輸入流
    out.close();
} catch (IOException e){
    e.printStackTrace();
}

 

相關文章