zoukankan      html  css  js  c++  java
  • Writer (字符流写出)

    Writer (字符流写出)

    java.io.Writer是字符流写出流的父类,而且是一个抽象类。不能创建对象,只能学习他的共性方法。

    Writer常用实现类的继承关系

    • java.lang.Object
      • java.io.Writer
        • java.io.OutputStreamWriter
          • java.io.FileWriter
        • java.io.BufferedWriter
        • java.io.PrintWriter

    Writer常用的三个实现类: FileWroter, BufferedWriter 和 PrintWriter

    共性方法(子类通用)

    修饰符和返回值 方法 说明
    abstract void close() 关闭此流,但要先刷新它。(关闭前会先flush)
    abstract void flush() 刷新该流的缓冲
    void writer(char[] cbuf) 写入字符数组。
    abstract void write(char[] cbuf, int off, int len) 写入字符数组的某一部分。
    void write(int c) 写入单个字符。
    void write(String str) 写入字符串。
    void write(String str, int off, int len) 写入字符串的某一部分。

    FileWriter子类

    构造方法

    方法 说明
    FileWriter(File file) 传入一个File对象
    FileWriter(String fileName) 传入一个文件的绝对路径
    FileWriter(String fileName, boolean append) append是否为追加,true是追加, false是覆盖, 默认false
    FileWriter(File file, boolean append) append是否为追加,true是追加, false是覆盖, 默认false

    使用实例:

    在文件中写入字符串:

    try {
        String path = "D:\DEV\eclipse\workspace\day13\testOut.txt";
        // 1. 创建对象
        // 参数true是追加, 不写或者为false是覆盖
        Writer out = new FileWriter(path, true);
        // 第二种创建对象方式
        // Writer out = new FileWriter(new File(path))
        // 2. 开始写出
        out.write("你好");
        // 3. 释放资源
        out.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    BufferedWriter子类

    将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。 可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了(默认8192--8KB)

    构造方法

    方法 说明
    BufferedWriter(Writer out) 一般传入FileWriter对象

    使用实例

    try {
        // 1. 创建对象
        String path = "D:\DEV\eclipse\workspace\day13\testOut.txt";
        Writer out = new BufferedWriter(
            // 参数true是追加, 不写或者为false是覆盖
            new FileWriter(path, true)
        );
        // 2. 开始写出
        out.write("hello word");
        out.flush(); // 用来把缓冲区的数据刷新到磁盘中展示
        // 3. 关闭资源
        out.close(); // 执行flush() 后再释放资源
    } catch (IOException e) {
        e.printStackTrace();
    }
    

    PrintWriter子类

    提供了按行写出到文件的方法

    常用构造方法

    方法 说明
    PrintWriter(File file) 传入一个File对象
    PrintWriter(String path) 传入一个文件路径
    PrintWriter(Writer out) 传入Writer类型
    PrintWriter(OutputStream out) 传入OutputStream类型

    常用方法

    返回值 方法 说明
    void println(重载参数) 写出到文件一行, 可以是基本类型参数或者对象等,
    一般常用String, (追加模式)

    代码实例

    // 读取一行, 写出一行
    // 读取a.txt一行, 写入到a_out.txt一行
    // 乱码问题使用转换流解决
    public class Test5_Line {
        public static void main(String[] args) throws IOException {
            // 读取流
            BufferedReader in = new BufferedReader(
                    new FileReader("D:\a.txt")
            );
            // 写出流
            PrintWriter out = new PrintWriter(
                    new FileWriter("D:\a_out.txt")
            );
            String line = "";
            while ((line = in.readLine()) != null) {
                System.out.println(line); // 读一行
                out.println(line); // 写一行
            }
    
            in.close();
            out.close();
        }
    }
    
  • 相关阅读:
    反射式光电开关QRE1113
    labview程序性能优化
    labview中小黑点,小红点
    简述时钟周期、机器周期、指令周期的概念及三者之间的关系
    C++中的#和##运算符
    NTC与PTC压敏电阻在电源电路中起的作用
    常用DC-DC;AC-DC电源芯片
    PC817与TL431的配合电路探讨
    React入门
    WebRTC网关服务器单端口方案实现
  • 原文地址:https://www.cnblogs.com/zpKang/p/12917751.html
Copyright © 2011-2022 走看看