IO---转换流和缓冲流
1、转换流概述
- OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去
2、转换流_字符转字节的过程
3、OutputStreamWriter写文本文件
a、OutputStreamWriter
java.io.OutputStreamWriter 继承Writer类 就是一个字符输出流,写文本文件 write()字符,字符数组,字符串 字符通向字节的桥梁,将字符流转字节流 OutputStreamWriter构造方法: OutputStreamWriter(OuputStream out)接收所有的字节输出流 字节输出流: FileOutputStream OutputStreamWriter(OutputStream out, String charsetName) String charsetName 传递编码表名字 GBK UTF-8 OutputStreamWriter 有个子类, FileWriter
代码案例
public class OutputStreamWriterDemo {
public static void main(String[] args)throws IOException {
// writeGBK();
writeUTF();
}
/*
* 转换流对象OutputStreamWriter写文本
* 采用UTF-8编码表写入
*/
public static void writeUTF()throws IOException{
//创建字节输出流,绑定文件
FileOutputStream fos = new FileOutputStream("c:\\utf.txt");
//创建转换流对象,构造方法保证字节输出流,并指定编码表是UTF-8
OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8");
osw.write("你好");
osw.close();
}
/*
* 转换流对象 OutputStreamWriter写文本
* 文本采用GBK的形式写入
*/
public static void writeGBK()throws IOException{
//创建字节输出流,绑定数据文件
FileOutputStream fos = new FileOutputStream("c:\\gbk.txt");
//创建转换流对象,构造方法,绑定字节输出流,使用GBK编码表
OutputStreamWriter osw = new OutputStreamWriter(fos);
//转换流写数据
osw.write("你好");
osw.close();
}
}
4、转换流_字节转字符流过程
InputStreamReader
- java.io.InputStreamReader 继承 Reader
- 字符输入流,读取文本文件
- 字节流向字符的敲了,将字节流转字符流
- 读取的方法:read() 读取1个字符,读取字符数组
- 技巧 (1)OuputStreamWriter写了文件 (2)InputStreamReader读取文件
- OutputStreamWriter(OutputStream out)所有字节输出流
- InputStreamReader(InputStream in) 接收所有的字节输入流
- 可以传递的字节输入流: FileInputStream
- InputStreamReader(InputStream in,String charsetName) 传递编码表的名字