24.IO学习——转换流
原创
©著作权归作者所有:来自51CTO博客作者原小明呢的原创作品,请联系作者获取转载授权,否则将追究法律责任
转换流:
1.概述
将给定字节转成成指定码表的字符。
2.OutputStreamWriter
字符流通向字节流的桥梁,可使用指定的 charset(字符集(容器))
将要写入流中的字符编码成字节。
示例:OutputStreamWriter:将字符流转成字节(下面四个转编码表实现同样的功能)
//默认编码表
FileWriter fw=new FileWriter("zhuanhuanliu.txt");
fw.write("你好");
fw.close();
//使用指定编码表。将字符转成字节(outputStreamWriter)
FileOutputStream fos=new FileOutputStream("demo2.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos);
osw.write("你好");
//使用指定编码表GBK
FileOutputStream fos=new FileOutputStream("demo2.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos,"GBK");
osw.write("你好");
osw.close();
//使用指定编码表UTF_8
FileOutputStream fos=new FileOutputStream("demo2.txt");
OutputStreamWriter osw=new OutputStreamWriter(fos,"UTF_8");
osw.write("你好");
3.InputStreamReader
将字节转成字符数据
当想要操作文本的时候,如果涉及编码,FileReader是不行的,要用
示例:
FileInputStream fis=new FileInputStream("demo.txt");
InputStreamReader isr=new InputStreamReader(fis);
char[] buf=new char[1024];
int ch=isr.read(buf);
System.out.println(new String(buf,0,ch));
4.小记
转换流:字节流+编码表(可以指定)
|--用于操作File的子类:字节流+本地默认码表(固定)。