字符输出流 OutputStreamWriter day17

package com.shujia.day17.ketang;

import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import java.util.Arrays;

/*
    转换流(字符流) = 字节流 + 编码表
    字符流:(当一个文件使用记事本打开能够看懂的时候,就可以用字符流)
        字符输入流:
            Reader
        字符输出流:
            Writer
                -  OutputStreamWriter(实现子类)


注意:字符流写数据都需要flush
OutputStreamWriter
    构造方法:
         OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
         OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。
    成员方法:
        public void write(int c)
        public void write(char[] cbuf)
        public void write(char[] cbuf,int off,int len)
        public void write(String str)
        public void write(String str,int off,int len)


 */
public class OutputStreamWriterDemo1 {
    public static void main(String[] args) throws Exception {
//        String info = "今天下午不上课";
//        //编码
////        byte[] bytes = info.getBytes();
//        //public byte[] getBytes(String charsetName)  指定编码转字节数组
//        byte[] bytes = info.getBytes("GBK");
//        System.out.println(Arrays.toString(bytes));
//
//        //解码
////        String s = new String(bytes);
//        //public String(byte bytes[], String charsetName) 指定编码将字节数组转字符串
//        String s = new String(bytes, "GBK");
//        System.out.println(s);

        //创建一个字符输出流对象,向文件中写数据
        //OutputStreamWriter(OutputStream out) 创建一个使用默认字符编码的OutputStreamWriter。
//        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("src/com/shujia/day17/data/a2.txt"));
        //OutputStreamWriter(OutputStream out, String charsetName) 创建一个使用命名字符集的OutputStreamWriter。
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("src/com/shujia/day17/data/a2.txt"), "UTF-8");

        //public void write(int c) 一次写一个ASCII码字符
//        osw.write(97);
//        osw.flush();

        //public void write(char[] cbuf) 一次写一个字符数组
//        char[] chars = {'我', '爱', '中', '国'};
//        osw.write(chars);
//        osw.flush();

        //public void write(char[] cbuf,int off,int len) 一次写字符数组的一部分
//        osw.write(chars,2,2);
//        osw.flush();

        //public void write(String str) 一次写一个字符串
//        osw.write("今天的天气挺好!");
//        osw.flush();

        //public void write(String str,int off,int len) 一次写字符串的一部分
        osw.write("魏一民是世界上超级无敌究极酷且帅且有钱的男人!",7,12);
        osw.write("\r\n");
        osw.write("陈真很不服!");
        osw.flush();



        osw.close();
    }
}
posted @ 2024-08-16 19:48  ていせい  阅读(1)  评论(0编辑  收藏  举报