Java FileOutputStream 类

java.io包中的FileOutputStream类可用于将数据(以字节为单位)写入文件。

它扩展了OutputStream抽象类。

The FileOutputStream class is the subclass of the Java OutputStream.

在学习FileOutputStream之前,请确保了解Java 文件


创建 FileOutputStream

为了创建文件输出流,我们必须先导入java.io.FileOutputStream包。导入包后,我们可以在Java中这样创建文件输出流。

1. 使用文件路径

// Including the boolean parameter
FileOutputStream output = new FileOutputStream(String path, boolean value);

// Not including the boolean parameter
FileOutputStream output = new FileOutputStream(String path);

在这里,我们创建了一个输出流,它将链接到由path指定的文件。

此外,value是一个可选的布尔参数。如果设置为true,则新数据将追加到文件现有数据的末尾。否则,新数据将覆盖文件中的现有数据。

2. 使用文件对象

FileOutputStream output = new FileOutputStream(File fileObject);

在这里,我们创建了一个输出流,它将链接到由fileObject指定的文件。


FileOutputStream 方法

FileOutputStream类提供了OutputStream类中各种方法的实现。

write() 方法

  • write() - 将单个字节写入文件输出流
  • write(byte[] array) - 将指定数组中的字节写入输出流
  • write(byte[] array, int start, int length) - 将等于length的字节从start位置开始的数组写入输出流

示例:使用 FileOutputStream 将数据写入文件

import java.io.FileOutputStream;

public class Main {
    public static void main(String[] args) {
        
        String data = "This is a line of text inside the file.";

        try {
            FileOutputStream output = new FileOutputStream("output.txt");

            byte[] array = data.getBytes();

            // Writes byte to the file
            output.write(array);

            output.close();
        }

        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

在上面的示例中,我们创建了一个名为output的文件输出流。该文件输出流与文件output.txt链接。

FileOutputStream output = new FileOutputStream("output.txt");

为了写入数据到文件,我们使用了write()方法。

这里,当我们运行程序时,output.txt文件将包含以下内容。

This is a line of text inside the file.

注意:程序中使用的getBytes()方法将字符串转换为字节数组。


flush() 方法

要清空输出流,我们可以使用flush()方法。此方法强制输出流将所有数据写入目标。例如,

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

public class Main {
    public static void main(String[] args) throws IOException {

        FileOutputStream out = null;
        String data = "This is demo of flush method";

        try {
            out = new FileOutputStream(" flush.txt");

            // Using write() method
            out.write(data.getBytes());

            // Using the flush() method
            out.flush();
            out.close();
        }
        catch(Exception e) {
            e.getStackTrace();
        }
    }
}

当我们运行程序时,文件flush.txt将被字符串data表示的文本填充。


close() 方法

要关闭文件输出流,我们可以使用close()方法。调用该方法后,我们不能再使用FileOutputStream的方法。


FileOutputStream 的其他方法

方法 描述
finalize() 确保调用 close() 方法
getChannel() 返回与输出流关联的FileChannel对象
getFD() 返回与输出流关联的文件描述符

欲了解更多信息,请访问Java FileOutputStream (官方Java文档)

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战