Writer (字符流写出)

Writer (字符流写出)

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

Writer常用实现类的继承关系

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

Writer常用的两个实现类: FileWroter和BufferedWriter

共性方法(子类通用)

修饰符和返回值 方法 说明
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();
}

猜你喜欢

转载自www.cnblogs.com/zpKang/p/12917751.html
今日推荐