首页 > 编程学习 > day18周日休息_chap-IO1_字符输出_OutputStreamWriter、FileWriter、BufferedWriter

IO流部分记忆体系整理

这篇记录的是OutputStreamWriter、FileWriter、BufferedWriter

1.OutputStreamWriter【处理字符流。方向:内存向文件】

父类Writer

OutputStreamWriter类对象下面简写为out

(1)用指定输出流out,写回覆盖掉原来文件或者追加新内容到原来文件

如果是追加,那么out已经完成了对原始文件所有内容的读取

(2)所有带缓冲区的输出流要执行flush操作,最后通过close关闭输出流

代码例子:

package com.cskaoyan.bytestream.transf;

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

/**
 * @description: 转换流
 * @author: 景天老师
 **/

public class Demo {
    public static void main(String[] args) throws IOException {
        //创建转化输出流对象
        //【字符】
        OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream("a.txt"));
        //写数据
        String s = "今日进度:校对需求文档大纲";
        //writeSingle(out, s);

        //多字符
        //writeMuti(out, s);

        //直接写字符串
        out.write(s,0,s.length());

        String encoding = out.getEncoding();//获取输出流的编码
        System.out.println(encoding);

        out.flush();
        //close
        out.close();
    }

    private static void writeMuti(OutputStreamWriter out, String s) throws IOException {
        char[] chars = s.toCharArray();//转String到字符数组
        out.write(chars,0,chars.length);
    }

    private static void writeSingle(OutputStreamWriter out, String s) throws IOException {
        char[] chars = s.toCharArray();//为了对比,所以写成for循环,每个字符数组元素作为参数
        for (int i = 0; i < chars.length; i++) {
            out.write(chars[i]);
        }
    }
}

 

2.FileWriter【处理字符流。方向:内存向文件】

父类Writer

FileWriter类对象下面简写为fw

(1)用指定输出流fw,写回覆盖掉原来文件或者追加新内容到原来文件

如果是追加,那么fw已经完成了对原始文件所有内容的读取

(2)所有带缓冲区的输出流要执行flush操作,最后通过close关闭输出流

代码例子:

package com.cskaoyan.bytestream.simple;

import java.io.FileWriter;
import java.io.IOException;

/**
 * @description:
 * @author: 景天老师
 **/

public class Demo {
    public static void main(String[] args) throws IOException {
        //public FileWriter(String fileName)
        //public FileWriter(String fileName, boolean append)
        FileWriter fw = new FileWriter("a.txt");
        fw.write("您好!");
        fw.flush();//写回。FileWriter需要写回
        fw.close();
    }
}

 

3.BufferedWriter【处理字符流。方向:内存向文件】

父类Writer

BufferedWriter类对象下面简写为bw

(1)用指定输出流bw,写回覆盖掉原来文件或者追加新内容到原来文件

如果是追加,那么bw已经完成了对原始文件所有内容的读取

(2)这里没写flush。最后通过close关闭输出流

【换行:bw.newLine()】

代码例子:

package com.cskaoyan.buffer;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class Demo {
    public static void main(String[] args) throws IOException {
        //缓冲输出字符流
        //BufferedWriter,用Writer是字符,在这里BufferedWriter的参数
        //是用new新建的FileWriter对象
        //FileWriter是比BufferedWriter更内层的一个类,是输出字符流类

        BufferedWriter bw = new BufferedWriter(new FileWriter("a.txt"));
        
        bw.write("每天早起");
        //newLine()换行
        bw.newLine();
        bw.write("锻炼抗疲劳能力");
        bw.close();//这里需要关闭操作。
        //已经需要关闭操作的IO流的类:FileOutputStream
    }
}

 

Copyright © 2010-2022 ngui.cc 版权所有 |关于我们| 联系方式| 豫B2-20100000