用字符流和字節流解決UTF-8編碼與GBK編碼的轉換


 1 import java.io.BufferedReader;
 2 import java.io.BufferedWriter;
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 import java.io.InputStreamReader;
 8 import java.io.OutputStreamWriter;
 9 
10 public class BianMaDemo2 {
11     public static void main(String[] args) throws IOException, FileNotFoundException {
12         //將UTF-8編碼的文件讀出,保存到編碼為GBK的文件中,java中默認編碼為GBK
13         //若讀出時使用字節流
14         BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("222.txt"),"UTF-8"));
15         BufferedWriter wr=new BufferedWriter(new OutputStreamWriter(new FileOutputStream("111.txt"),"GBK"));
16         //創建緩沖流,底層是字符輸入流實現,字符輸入流實現字節向字符的轉換(字符輸入流底層是字節輸入流實現)
17         //對於字符流可以指定其編碼格式
18         
19         /*
20          * 法一
21          * 使用BufferedReader的readLine()方法,一次讀一行,不包括最后的換行符
22          */
23     
24         /*String line;
25         while((line=br.readLine())!=null){
26             wr.write(line,0,line.length());
27             wr.newLine();
28         }*/
29         
30         
31         
32         /*
33          * 法二
34          * 定義字節數組,一次讀取一個數組,返回數組長度,寫入時要用具體長度
35          */
36         /*int len;
37         char[] chs=new char[1024];
38         while((len=br.read(chs))!=-1){
39             wr.write(chs,0,len);
40         }*/
41         
42         
43         
44         /*
45          * 法三
46          * 定義int類型,一次讀取一個字節,
47          */
48         int ch;
49         while((ch=br.read())!=-1){
50             wr.write(ch);
51         }
52 
53         
54         br.close();//釋放資源
55         wr.close();
56     }
57 
58 }

 


免責聲明!

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



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