OutputStream (字节流写出)

OutputStream (字节流写出)

java.io.OutputStream是字节流输出流的父类,而且是抽象类。所以不能创建对象,

OutputStream常用实现类的继承关系

  • java.lang.Object
    • java.io.OutputStream
      • java.io.FileOutputStream
        • java.io.BufferedOutputStream

OutputStream的常用实现类2个: FileOutputStream和BufferedOutputStream

OutputStream共性方法: (子类通用)

返回值 方法 说明
void close() 关闭此输出流并释放与此流有关的所有系统资源。(关闭前会flush)
void flush() 刷新此输出流并强制写出所有缓冲的输出字节。
void write(byte[] b) 将 b.length 个字节从指定的 byte 数组写入此输出流。
void write(byte[] b, int off, int len) 将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
abstract void write(int b) 将指定的字节写入此输出流。

FileOutputStream子类

构造方法

方法 说明
FileOutputStream(File file) 传入一个File对象
FileOutputStream(String name) 传入一个文件路径字符串
FileOutputStream(File file, boolean append) 传入一个File对象, append取值:
true: 追加
false: 覆盖
默认false
FileOutputStream(String name, boolean append) 传入一个文件路径字符串, append取值:
true: 追加
false: 覆盖
默认false

使用实例:

try {
    // 1. 创建对象--默认是覆盖模式, 也可以改成追加模式
    String path = "D:\DEV\eclipse\workspace\day13\testOut.txt";
    // 加上true就是追加, 否则是覆盖
    OutputStream out = new FileOutputStream(path, true);
    // 第二种创建方式
    // OutputStream out = new FileOutputStream(new File(path));
    // 2. 开始写出
    out.write(97);
    out.write(98);
    out.write(99);
    // 3. 释放资源
    out.close();
} catch (IOException e) {
    e.printStackTrace();
}

BufferedOutputStream子类

该类实现缓冲的输出流。比FileOutputStream更加高效

构造器

方法 说明
BufferedOutputStream(OutputStream out) 一般传入一个FileOutputStream

使用实例:

try {
    // 1. 创建对象
    String path =  "D:\DEV\eclipse\workspace\day13\testOut.txt";
    OutputStream out = new BufferedOutputStream(
        // 加上true就是追加, 否则是覆盖
        new FileOutputStream(path,true)
    );
    // 2. 开始写入
    out.write(97);
    out.write(98);
    out.write(99);
    // 3. 关闭资源
    out.close();
} catch (IOException e) {
    e.printStackTrace();
}
原文地址:https://www.cnblogs.com/zpKang/p/12917742.html