OutputStreamWriter类
1、概述
转换流 java.io.OutputStreamWriter,是Writer的子类,是从字符流到字节流的桥梁。
它使用指定的字符集将字符编码为字节。它的字符集可以由名称指定,也可以接受平台的默认字符集。
2、继承父类的共性成员方法
该类继承 Writer 类,继承了父类的共性成员方法
void write(int c) 写入单个字符。 void write(char[] cbuf)写入字符数组。 abstract void write(char[] cbuf, int off, int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数。 void write(String str)写入字符串。 void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。 void flush()刷新该流的缓冲。 void close() 关闭此流,但要先刷新它。
3、构造方法
OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter。
OutputStreamWriter(OutputStream out, String charsetName) 创建使用指定字符集的 OutputStreamWriter。
参数:
OutputStream out:字节输出流,可以用来写转换之后的字节到文件中
String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8
4、使用步骤【重要】
① 创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
② 使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码)
③ 使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
④ 释放资源
Demo:
1 public static void main(String[] args) throws IOException {
2 //1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
3 //OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\utf_8.txt"),"utf-8");
4 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("E:\utf_8.txt"));//不指定默认使用UTF-8
5 //2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码)
6 osw.write("你好");
7 //3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
8 osw.flush();
9 //4.释放资源
10 osw.close();
11 }