1. 程式人生 > 其它 >Java基礎IO流介紹之六——什麼是橋轉換(轉換流)

Java基礎IO流介紹之六——什麼是橋轉換(轉換流)

轉換流(重要)

1、概述

是位元組流到字元流的橋樑,在轉換的過程中,可以指定編碼.

2、分類——InputStreamReader/OutputStreamWriter

InputStreamReader:
     是從位元組流到字元流的橋樑,父類是Reader 它讀取位元組,並使用指定的編碼將其解碼為字元.
    它使用的字符集可以由名稱指定,也可以被明確指定,或者可以接受平臺的預設字符集 
OutputStreamWriter:
      是從字元流到位元組流的橋樑,父類是Writer 是從字元流到位元組流的橋樑,使用指定的編碼將寫入的字元編碼為位元組.
    它使用的字符集可以由名稱指定,也可以被明確指定,或者可以接受平臺的預設字符集

3、構造方法

方法名 說明
InputStreamReader(InputStream in) 使用預設字元編碼建立InputStreamReader物件
InputStreamReader(InputStream in,String chatset) 使用指定的字元編碼建立InputStreamReader對物件
OutputStreamWriter(OutputStream out) 使用預設字元編碼建立OutputStreamWriter物件
OutputStreamWriter(OutputStream out,String charset) 使用指定的字元編碼建立OutputStreamWriter物件
//案例:

import java.io.*;

public class Demo13 {
    public static void main(String[] args) throws Exception {
        // 位元組流  ---> 可以處理的所有的檔案
        // 字元流 ---> 處理文字檔案 ---> 有優勢

//        FileOutputStream fileOutputStream = new FileOutputStream("file/a.txt");
//
//        // 要將位元組流轉換為字元流  ---> 可以指定編碼
//
//        //以  GBK 編碼 寫入一些字元
//        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"utf-8");
//
//        outputStreamWriter.write("閨中少婦不知愁");
//
//        outputStreamWriter.close();

        FileInputStream fileInputStream = new FileInputStream("file/a.txt");

        //以GBK進行讀取
        InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream,"utf-8");

        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        String s = bufferedReader.readLine();
        System.out.println(s);

        bufferedReader.close();


    }
}