Java 基础 OutputStreamWriter介绍&代码实现

package demo6;

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

/*
* Java.io.OutputStreamWriter extends Writer
* OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的charset将要写入流中的字符编码成字节
*
* 继续自父类的共性成员方法:
*   void write(int c) 写入单个字符。
*   void write(char[] cbuf)写入字符组
*   abstract void write(char[] cbuf,int off,int len)写入字符组的一部分,off数组的开始索引,len写的字符个数
*   void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
*   void flush()刷新该流的缓冲
*   void close()关闭此流,但要先刷新它
* 构造方法:
*   OutputStreamWriter(OutputStream out)创建使用默认字符编码的OutputStreamWriter
*   OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的OutputStreamWriter
*   参数:
*       OutputStream out:字节输出流,可以用来写转换之后的字节到文件中
*       String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK....不指定默认使用UTF-8
* 使用步骤:
*   1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
*   2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码)
*   3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
*   4.释放资源*/
public class demo6 {
    public static void main(String[] args) throws IOException {
        write_utf_8();
    }
    /*使用转换流OutputStreamWriter写入utf-8格式的文件
    * */
    private static void write_utf_8() throws IOException {
        //1.创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("/Users/wanggang/Desktop/java/src/demo6/1.txt"),"utf-8");
        //2.使用OutputStreamWriter对象中的方法write,把字符转换为字节存储缓冲区中(编码)
        osw.write("你好");
        //3.使用OutputStreamWriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
        osw.flush();
        //4.释放资源
        osw.close();
    }
}

你可能感兴趣的:(java)