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

 

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