Java基礎IO流介紹之六——什麼是橋轉換(轉換流)
阿新 • • 發佈:2021-06-26
轉換流(重要)
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(); } }