IO的转换流
1- 转换流的理解:
通俗:使用"转换流"‘读入’信息的时候,正常读取,后面加一个当前文件的编码形式
通俗:使用"转换流"‘写出’信息的时候,正常读写,后面加一个,你想要的文件编码形式
一句话:其他都和正常的读取一样,就是读取看别人,写出看自己(就逗号后面的编码格式有区别)
eg: OutputStreamWriter(你取名的文件, "你自定义的文件类型");
1-转换流
将"字节流"和"字符流"相互转化
用处:读取的是utf-8 ==> 输出变成gbk
2- InputStreamReader、OutputStreamWriter的理解
InputStreamReader --> 将"字节流"转换为"字符流"。是"字节流"通向"字符流"的桥梁
OutputStreamWriter -->将"字符流"转换为"字节流"。(这里注意是将"字符流")是"字符流"通向"字节流"的桥梁
2- 转换流的使用
(我的案例:读取"UTF-8"文件 ---> 放回出"GBK文件"类型)
//本来为了安全,应该要写try-catch,为了代码简洁,略了
public void test() throws Exception {
FileInputStream fileInputStream = new FileInputStream("/Users/ccc/Desktop/testIO/hello.txt");
FileOutputStream fileOutputStream = new FileOutputStream("/Users/ccc/Desktop/testIO/hello-Translation.txt");
//包一个"转化流"
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "gbk");
//读写
char[] cbuf = new char[1024];
int len;
while ((len = inputStreamReader.read(cbuf)) != -1) {
outputStreamWriter.write(cbuf);
}
inputStreamReader.close();
outputStreamWriter.close();
}