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 }