1 package com.itheima.demo03.ReverseStream; 2 3 import java.io.FileOutputStream; 4 import java.io.IOException; 5 import java.io.OutputStreamWriter; 6 7 /* 8 java.io.OutputStreamWriter extends Writer 9 OutputStreamWriter: 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂) 10 11 继续自父类的共性成员方法: 12 - void write(int c) 写入单个字符。 13 - void write(char[] cbuf)写入字符数组。 14 - abstract void write(char[] cbuf, int off, int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数。 15 - void write(String str)写入字符串。 16 - void write(String str, int off, int len) 写入字符串的某一部分,off字符串的开始索引,len写的字符个数。 17 - void flush()刷新该流的缓冲。 18 - void close() 关闭此流,但要先刷新它。 19 构造方法: 20 OutputStreamWriter(OutputStream out)创建使用默认字符编码的 OutputStreamWriter。 21 OutputStreamWriter(OutputStream out, String charsetName) 创建使用指定字符集的 OutputStreamWriter。 22 参数: 23 OutputStream out:字节输出流,可以用来写转换之后的字节到文件中 24 String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK,...不指定默认使用UTF-8 25 使用步骤: 26 1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称 27 2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码) 28 3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程) 29 4.释放资源 30 */ 31 public class Demo02OutputStreamWriter { 32 public static void main(String[] args) throws IOException { 33 //write_utf_8(); 34 write_gbk(); 35 } 36 37 /* 38 使用转换流OutputStreamWriter写GBK格式的文件 39 */ 40 private static void write_gbk() throws IOException { 41 //1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称 42 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("10_IO\\gbk.txt"),"GBK"); 43 //2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码) 44 osw.write("你好"); 45 //3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程) 46 osw.flush(); 47 //4.释放资源 48 osw.close(); 49 } 50 51 /* 52 使用转换流OutputStreamWriter写UTF-8格式的文件 53 */ 54 private static void write_utf_8() throws IOException { 55 //1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称 56 //OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("10_IO\\utf_8.txt"),"utf-8"); 57 OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("10_IO\\utf_8.txt"));//不指定默认使用UTF-8 58 //2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码) 59 osw.write("你好"); 60 //3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程) 61 osw.flush(); 62 //4.释放资源 63 osw.close(); 64 } 65 }
1 package com.yhqtv.demo06.trycatch; 2 3 import java.io.*; 4 5 /* 6 * @author XMKJ yhqtv.com Email:yhqtv@qq.com 7 * @create 2020-05-13-14:31 8 * 9 */ 10 public class Demo02OutputStreamWriter { 11 public static void main(String[] args) throws IOException { 12 OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("C:\\1.txt"),"gbk"); 13 osw.write("鑫淼的世界"); 14 osw.flush(); 15 osw.close(); 16 17 } 18 }
OutputStreamWriter: 是字符流通向字节流的桥梁
原文:https://www.cnblogs.com/yhqtv-com/p/12882210.html