1. 程式人生 > >JAVA io流筆記06 轉換流

JAVA io流筆記06 轉換流

package FileText;

//InputStreamReader類包含了一個底層輸入流,可以從中讀取原始位元組。它根據指定的編碼方式,
//將這些位元組轉換為Unicode字元。

//OutputStreamWriter從執行的程式中接收Unicode字元,然後使用指定的編碼方式將這些字元轉換為位元組,
//再將這些位元組寫入底層輸出流中

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;

//轉換流:位元組流轉為字元流(處理編碼:字元->解碼字符集->二進位制,解碼)

public class TurnStream06 {
    
public static void main(String args[]){
    turn();
}

public static void turn(){
    String str = "白鶴";
    byte byt[] = str.getBytes();
    System.out.println(new String(byt));
    
    try {
        byte[] byt2 = "中國".getBytes("GB2312");
        System.out.println(new String(byt2,"utf-8"));  //編碼解碼不同則出現亂碼
        
        System.out.println(new String(byt2,"GB2312"));//相同時正常輸出
    } catch (UnsupportedEncodingException e) {

        e.printStackTrace();
    }
    
    try {
        File file = new File("D:/Text/dd/BufText3.txt");
        File file2 = new File("D:/Text/dd/BufText4.txt");

        BufferedReader changgeread = new BufferedReader(
                new InputStreamReader(
                        new FileInputStream(file),"utf-8"));
        
        BufferedWriter changewrite = new BufferedWriter(
                new OutputStreamWriter(
                        new FileOutputStream(file2),"utf-8"));
        
        int len=2048;
        char [] cha2 = new char[2048];
        
        if(-1!=(len=(changgeread.read(cha2)))){
            changewrite.write(cha2, 0, len);
            changewrite.flush();
            changewrite.close();
            changgeread.close();
        }
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {

        e.printStackTrace();
    }
    
}
}