轉換流


一  轉換流

1 OutputStreamWriter類

是字符流通向字節流的橋梁:

可使用指定的字符編碼表,將要寫入流中的字符編碼成字節。它的作用的就是,將字符串按照指定的編碼表轉成字節,在使用字節流將這些字節寫出去。

復制代碼
    public static void main(String[] args) throws IOException { //指定目的地 FileOutputStream fos=new FileOutputStream("E:\\java\\UTF-8.txt",true); //創建轉換流 OutputStreamWriter osw=new OutputStreamWriter(fos, "utf-8"); osw.write("你好,小豬佩奇"); osw.flush(); //釋放資源(你自己new了誰,就關誰,先開的后關)  osw.close(); fos.close(); }
復制代碼

2 InputStreamReader類

是字節流通向字符流的橋梁:

它使用指定的字符編碼表讀取字節並將其解碼為字符。它使用的字符集可以由名稱指定或顯式給定,或者可以接受平台默認的字符集。

復制代碼
    public static void main(String[] args) throws IOException { //獲取數據源 FileInputStream fis=new FileInputStream("E:\\java\\UTF-8.txt"); //創建轉換流 InputStreamReader isr=new InputStreamReader(fis,"utf-8"); //開始讀取 int len=0; while((len=isr.read())!=-1){ System.out.println((char)len); } //釋放資源  isr.close(); fis.close(); }
復制代碼

注意:在讀取指定的編碼的文件時,一定要指定編碼格式,否則就會發生解碼錯誤,而發生亂碼現象。

3. 轉換流和子類的區別

發現有如下繼承關系:

OutputStreamWriter:

                   |--FileWriter:

InputStreamReader:

                 |--FileReader;

一旦要指定其他編碼時,絕對不能用子類,必須使用字符轉換流。什么時候用子類呢?

條件:

1、操作的是文件。2、使用默認編碼。

總結:

字節--->字符 : 看不懂的--->看的懂的。  需要讀。輸入流。 InputStreamReader

字符--->字節 : 看的懂的--->看不懂的。  需要寫。輸出流。 OutputStreamWriter


免責聲明!

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



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