📜  Java IO-FilterOutputStream(1)

📅  最后修改于: 2023-12-03 15:15:56.330000             🧑  作者: Mango

Java IO-FilterOutputStream

在 Java 中,FilterOutputStream 类是一个输出流过滤器,它提供了向底层输出流添加功能的能力。继承自此类的子类实现了对数据流进行过滤和处理。

继承关系

FilterOutputStream 是 OutputStream 的子类,它们在 Java I/O 类层次结构中的关系如下图所示:

   +---------------+
   |   OutputStream|  // 输出流
   +---------------+
             ^    
             |    
   +---------------+
   |FilterOutputStream|  // 过滤输出流
   +---------------+
构造方法
FilterOutputStream(OutputStream out)

通过构造方法创建一个新的 FilterOutputStream 对象,该对象使用指定的底层输出流。

参数:

  • out:底层输出流。
方法

FilterOutputStream 类实现了 OutputStream 抽象类中的所有方法,同时还提供如下方法:

void write(int b)

将指定的字节写入此过滤输出流中。

参数:

  • b:要写入的字节。

异常:

  • IOException:如果发生输入或输出异常。
void write(byte[] b, int off, int len)

将 len 个字节从指定的字节数组写入此过滤输出流中,从 off 开始偏移量处开始写入。

参数:

  • b:要写入的字节数组。
  • off:数组中要写入的第一个字节的偏移量。
  • len:要写入的字节数。

异常:

  • IOException:如果发生输入或输出异常。
void flush()

刷新此过滤输出流并强制任何缓冲的输出字节被写出。

异常:

  • IOException:如果发生输入或输出异常。
void close()

关闭此流并释放与此流有关的所有系统资源。

异常:

  • IOException:如果发生输入或输出异常。
实例

下面是一个简单的将字符串写入文件的例子,使用了 FilterOutputStream 类来写入文件:

import java.io.*;

public class FilterOutputStreamExample {
    public static void main(String[] args) {
        String text = "Hello, World!";
        byte[] data = text.getBytes();
        try {
            OutputStream outputStream = new FileOutputStream("output.txt");
            FilterOutputStream filterOutputStream = new FilterOutputStream(outputStream);
            
            filterOutputStream.write(data);
            filterOutputStream.flush();
            filterOutputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

以上代码将字符串 "Hello, World!" 写入了名为 output.txt 的文件中。