package cn.file;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* 今天整理一下關於轉換流的編碼處理:
* [InputStreamReade,OutputStreamWriter]
*
* 讀取指定編碼:new InputStreamReade(new FileInputStream("path.txt") , "GBK");
* 寫入指定編碼:new OutputStreamWriter(new FileOutputStream("pathSecond.txt") , "GBK");
*
* 字符編碼:Character Encoding(二進制存儲各種形式的信息數據規則即字符編碼-自然語言同二進制數之間的規則)
* 字符集:Charset(也叫做編碼表:用來記錄所有地域國家的文字、標點符號、圖形符號、數字等信息;)
* (常見的字符集:ASCII字符集、GBK字符集、Unicode字符集;)
*
*
* 還是同以往一樣,創建自己的測試類;
* @author Administrator
*
*/
public class BufferStreamTest {
/**
* Java主函數|入口;
* @param args
*/
public static void main(String[] args) {
// 初始化文件地址;
String path = "D:\\LADDING.txt";
String pathSecond = "D:\\LADDING_Second.txt";
try {
// 初始化InputStreamReader對象,讀取指定編碼數據;
InputStreamReader isr = new InputStreamReader(new FileInputStream(path),"UTF-8");
// 初始化OutputStreamWriter對象,輸出指定編碼數據;
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(pathSecond),"UTF-8");
/**
* 初始化移動變量;
* 用來記錄每次讀取的二進制數據;
*/
int x = 0;
/**
* 遍歷流數據
* 只要數據文件有值,所讀取到的數據就會大於-1;
*/
while((x = isr.read()) != -1) {
// 數據流寫入;
osw.write(x);
}
// 資源釋放;
isr.close();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}