Java FileOutputStream 类
提示
- 写入文件的功能:
FileOutputStream
类用于将数据(以字节为单位)写入文件,扩展自OutputStream
抽象类。 - 创建文件输出流:可通过文件路径或文件对象创建
FileOutputStream
实例,还可选择是否追加数据到文件。 - FileOutputStream 方法:提供
write()
方法写入数据,flush()
方法强制写入所有缓存数据,和close()
方法关闭流并释放资源。
java.io
包中的 FileOutputStream
类可用于将数据(以字节为单位)写入文件。
它扩展了 OutputStream
抽象类。
在学习 FileOutputStream
之前,请确保了解 Java 文件。
创建 FileOutputStream
为了创建文件输出流,我们首先必须导入 java.io.FileOutputStream
包。导入包后,以下是在 Java 中创建文件输出流的方法。
1. 使用文件路径
// 包括布尔参数
FileOutputStream output = new FileOutputStream(String path, boolean value);
// 不包括布尔参数
FileOutputStream output = new FileOutputStream(String path);
在这里,我们创建了一个输出流,它将链接到由 path
指定的文件。
另外,value
是一个可选的布尔参数。如果它被设置为 true
,新数据将被追加到文件中现有数据的末尾。否则,新数据会覆盖文件中的现有数据。
2. 使用文件对象
FileOutputStream output = new FileOutputStream(File fileObject);
在这里,我们创建了一个输出流,它将链接到由 fileObject
指定的文件。
FileOutputStream 的方法
FileOutputStream
类为 OutputStream
类中的不同方法提供了实现。
write() 方法
write()
- 将单个byte
写入文件输出流write(byte[] array)
- 将指定数组中的字节写入输出流write(byte[] array, int start, int length)
- 从数组的start
位置开始,将等于length
的字节数写入输出流
示例:使用 FileOutputStream 将数据写入文件
import java.io.FileOutputStream;
public class Main {
public static void main(String[] args) {
String data = "这是文件中的一行文本。";
try {
FileOutputStream output = new FileOutputStream("output.txt");
byte[] array = data.getBytes();
// 向文件写入字节
output.write(array);
output.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
在上面的示例中,我们创建了一个名为 output
的文件输出流。文件输出流与文件 output.txt 关联。
FileOutputStream output = new FileOutputStream("output.txt");
要向文件写入数据,我们使用了 write()
方法。
在这里,当我们运行程序时,output.txt 文件将填充以下内容。
这是文件中的一行文本。
注意:程序中使用的 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 = "这是 flush 方法的演示";
try {
out = new FileOutputStream("flush.txt");
// 使用 write() 方法
out.write(data.getBytes());
// 使用 flush() 方法
out.flush();
out.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
当我们运行程序时,文件 flush.txt 将填充 data
字符串表示的文本。
close() 方法
要关闭文件输出流,我们可以使用 close()
方法。一旦调用该方法,我们就不能再使用 FileOutputStream
的方法。
FileOutputStream 的其他方法
方法 | 描述 |
---|---|
finalize() | 确保调用了 close() 方法 |
getChannel() | 返回与输出流相关联的 FileChannel 对象 |
getFD() | 返回与输出流相关联的文件描述符 |
要了解更多,请访问 Java FileOutputStream(官方 Java 文档).