首页 > 其他 > 详细

OutputStreamWriter: 是字符流通向字节流的桥梁

时间:2020-05-13 16:09:36      阅读:62      评论:0      收藏:0      [点我收藏+]
 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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!