📜  Java FileOutputStream类

📅  最后修改于: 2020-09-26 14:37:36             🧑  作者: Mango

在本教程中,我们将借助示例学习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) -从位置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的其他方法
Methods Descriptions
finalize() ensures that the close() method is called
getChannel() returns the object of FileChannel associated with the output stream
getFD() returns the file descriptor associated with the output stream

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