字符输出流OutputStreamWriter

字符输出流跟前面的缓冲区输出流有点像,都是包装流。这里它先包装一个字节流,然后包装流会去处理里面的字节,将其转化成对应的字符。

其构造方法如下:

 1 package com.hw.file0222;
 2 
 3 import java.io.FileNotFoundException;
 4 import java.io.FileOutputStream;
 5 import java.io.IOException;
 6 import java.io.OutputStreamWriter;
 7 
 8 import org.junit.Test;
 9 
10 @SuppressWarnings("unused")
11 public class DemoOutputStreamWriter {
12     public static void main(String[] args) {
13         
14     }
15     
16     @Test
17     public void testOutputStreamWriter(){
18         OutputStreamWriter writer = null;
19         try {
20             FileOutputStream fileoutput = new FileOutputStream("F://骚操作//demo01test.txt");
21             writer = new OutputStreamWriter(fileoutput);
22         } catch (IOException e) {
23             // TODO Auto-generated catch block
24             e.printStackTrace();
25         }finally {
26             try {
27                 if(writer != null){
28                     writer.close();
29                 }
30             } catch (IOException e) {
31                 // TODO Auto-generated catch block
32                 e.printStackTrace();
33             }
34         }
35 
36     }
37 }

 同样,里面具有write方法:

1 writer.write('中');
2 writer.write('国');

 也可以写入一个字符串:

1 writer.write("一生很长,为梦而狂");

也可以是一个字符数组(本质上还是一个字符串):

1 writer.write(new char[]{'我','在'});

另外我们需要注意,OutputStreamWriter里面也是有缓冲区的,也就是说,跟之前的一样,调用write方法的时候,并不会真的写到硬盘上,只有缓冲区里面满了才会真的写到硬盘上。或者当调用关闭方法、或者是flush方法的时候,才会真的写到硬盘上。

 同时,它也可以指定编码格式,但是要注意,读取文件时的编码必须跟写入文件的编码保持一致,否则会出现乱码的问题。

一般来说Eclipse默认编码格式为GBK,如果我想要以UTF-8来写入,那么文件编码格式也必须要改为UTF-8.

posted @ 2021-02-22 18:36  EvanTheBoy  阅读(160)  评论(0)    收藏  举报