Java轉換流之編碼處理-亂碼處理紀要

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();
		}
	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章