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