天天看點

Java知識【轉換流】

目錄

​​2.轉換流​​

​​2.1字元流中和編碼解碼問題相關的兩個類【了解】​​

​​2.2轉換流讀寫資料【應用】​​

2.轉換流

2.1字元流中和編碼解碼問題相關的兩個類【了解】

  • InputStreamReader:是從位元組流到字元流的橋梁,父類是Reader

    它讀取位元組,并使用指定的編碼将其解碼為字元

    它使用的字元集可以由名稱指定,也可以被明确指定,或者可以接受平台的預設字元集

  • OutputStreamWriter:是從字元流到位元組流的橋梁,父類是Writer

    是從字元流到位元組流的橋梁,使用指定的編碼将寫入的字元編碼為位元組

    它使用的字元集可以由名稱指定,也可以被明确指定,或者可以接受平台的預設字元集

2.2轉換流讀寫資料【應用】

  • 構造方法
方法名 說明
InputStreamReader(InputStream in) 使用預設字元編碼建立InputStreamReader對象
InputStreamReader(InputStream in,String chatset) 使用指定的字元編碼建立InputStreamReader對象
OutputStreamWriter(OutputStream out)
  • 代碼示範
public class ConversionStreamDemo {
    public static void main(String[] args) throws IOException {
        //OutputStreamWriter osw = new OutputStreamWriter(new                                             FileOutputStream("myCharStream\\osw.txt"));
        OutputStreamWriter osw = new OutputStreamWriter(new                                              FileOutputStream("myCharStream\\osw.txt"),"GBK");
        osw.write("中國");
        osw.close();

        //InputStreamReader isr = new InputStreamReader(new                                              FileInputStream("myCharStream\\osw.txt"));
        InputStreamReader isr = new InputStreamReader(new                                                 FileInputStream("myCharStream\\osw.txt"),"GBK");
        //一次讀取一個字元資料
        int ch;
        while ((ch=isr.read())!=-1) {
            System.out.print((char)ch);
        }
        isr.close();
    }
}