FileOutputStream
java.lang.Object
|—java.io.OutputStream
|—|—java.io.FileOutputStream
public class FileOutputStream
extends OutputStream
文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。 文件是否可用或是否可以创建取决于底层平台。 特别是某些平台,一次只允许一个 FileOutputStream(或其他文件写入对象)打开一个文件进行写入。 在这种情况下,如果所涉及的文件已经打开,则此类中的构造函数将失败。
FileOutputStream 用于写入原始字节流,例如图像数据。 要写入字符流,请考虑使用 FileWriter。
Since:
JDK1.0
构造函数摘要
构造函数 | 描述 |
---|---|
FileOutputStream(File file) | 创建一个文件输出流以写入由指定 File 对象表示的文件。 |
FileOutputStream(FileDescriptor fdObj) | 创建一个文件输出流以写入指定的文件描述符,它表示与文件系统中实际文件的现有连接。 |
FileOutputStream(File file, boolean append) | 创建一个文件输出流以写入由指定 File 对象表示的文件。 |
FileOutputStream(String name) | 创建文件输出流以写入具有指定名称的文件。 |
FileOutputStream(String name, boolean append) | 创建文件输出流以写入具有指定名称的文件。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | close() | 关闭此文件输出流并释放与此流关联的所有系统资源。 |
protected void | finalize() | 清理与文件的连接,并确保在不再引用此流时调用此文件输出流的 close 方法。 |
FileChannel | getChannel() | 返回与此文件输出流关联的唯一 FileChannel 对象。 |
FileDescriptor | getFD() | 返回与此流关联的文件描述符。 |
void | write(byte[] b) | 将指定字节数组中的 b.length 个字节写入此文件输出流。 |
void | write(byte[] b, int off, int len) | 从偏移量 off 开始的指定字节数组中写入 len 个字节到此文件输出流。 |
void | write(int b) | 将指定字节写入此文件输出流。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
从类 java.io.OutputStream 继承的方法 |
---|
flush |
构造函数详细信息
FileOutputStream
public FileOutputStream(String name) throws FileNotFoundException
创建文件输出流以写入具有指定名称的文件。 创建一个新的 FileDescriptor 对象来表示此文件连接。
首先,如果有一个安全管理器,它的 checkWrite 方法会以名称作为参数被调用。
如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开,则抛出 FileNotFoundException。
参数:
参数名称 | 参数描述 |
---|---|
name | 系统相关的文件名 |
Throws:
Throw名称 | Throw描述 |
---|---|
FileNotFoundException | 如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开 |
SecurityException | 如果安全管理器存在并且其 checkWrite 方法拒绝对文件的写访问。 |
FileOutputStream
public FileOutputStream(String name, boolean append) throws FileNotFoundException
创建文件输出流以写入具有指定名称的文件。 如果第二个参数为 true,那么字节将被写入文件的末尾而不是开头。 创建一个新的 FileDescriptor 对象来表示此文件连接。
首先,如果有一个安全管理器,它的 checkWrite 方法会以名称作为参数被调用。
如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开,则抛出 FileNotFoundException。
参数:
参数名称 | 参数描述 |
---|---|
name | 系统相关文件名 |
append | 如果为 true,那么字节将被写入文件的末尾而不是开头 |
Throws:
Throw名称 | Throw描述 |
---|---|
FileNotFoundException | 如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开。 |
SecurityException | 如果安全管理器存在并且其 checkWrite 方法拒绝对文件的写访问。 |
Since:
JDK1.1
FileOutputStream
public FileOutputStream(File file) throws FileNotFoundException
创建一个文件输出流以写入由指定 File 对象表示的文件。 创建一个新的 FileDescriptor 对象来表示此文件连接。
首先,如果有安全管理器,则调用它的 checkWrite 方法,并将文件参数表示的路径作为其参数。
如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开,则抛出 FileNotFoundException。
参数:
参数名称 | 参数描述 |
---|---|
file | 要打开以进行写入的文件。 |
Throws:
Throw名称 | Throw描述 |
---|---|
FileNotFoundException | 如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开 |
SecurityException | 如果安全管理器存在并且其 checkWrite 方法拒绝对文件的写访问。 |
FileOutputStream
public FileOutputStream(File file, boolean append) throws FileNotFoundException
创建一个文件输出流以写入由指定 File 对象表示的文件。 如果第二个参数为 true,那么字节将被写入文件的末尾而不是开头。 创建一个新的 FileDescriptor 对象来表示此文件连接。
首先,如果有安全管理器,则调用它的 checkWrite 方法,并将文件参数表示的路径作为其参数。
如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开,则抛出 FileNotFoundException。
参数:
参数名称 | 参数描述 |
---|---|
file | 要打开以进行写入的文件。 |
append | 如果为 true,那么字节将被写入文件的末尾而不是开头 |
Throws:
Throw名称 | Throw描述 |
---|---|
FileNotFoundException | 如果文件存在但是是目录而不是常规文件,不存在但无法创建,或者由于任何其他原因无法打开 |
SecurityException | 如果安全管理器存在并且其 checkWrite 方法拒绝对文件的写访问。 |
Since:
1.4
FileOutputStream
public FileOutputStream(FileDescriptor fdObj)
创建一个文件输出流以写入指定的文件描述符,它表示与文件系统中实际文件的现有连接。
首先,如果有一个安全管理器,它的 checkWrite 方法被调用,文件描述符 fdObj 参数作为它的参数。
如果 fdObj 为 null,则抛出 NullPointerException。
如果 fdObj 无效,此构造函数不会引发异常。 但是,如果在结果流上调用方法以尝试对流进行 I/O,则会引发 IOException。
参数:
参数名称 | 参数描述 |
---|---|
fdObj | 为写入而打开的文件描述符 |
Throws:
Throw名称 | Throw描述 |
---|---|
SecurityException | 如果安全管理器存在并且它的 checkWrite 方法拒绝对文件描述符的写访问 |
方法详情
write
public void write(int b) throws IOException
将指定字节写入此文件输出流。 实现OutputStream的write方法。
指定者:
写在类 OutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 要写入的字节。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(byte[] b) throws IOException
将指定字节数组中的 b.length 个字节写入此文件输出流。
覆盖:
写在类 OutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 数据。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(byte[] b, int off, int len) throws IOException
从偏移量 off 开始的指定字节数组中写入 len 个字节到此文件输出流。
覆盖:
写在类 OutputStream
参数:
参数名称 | 参数描述 |
---|---|
b | 数据。 |
off | 数据中的起始偏移量。 |
len | 要写入的字节数。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
close
public void close() throws IOException
关闭此文件输出流并释放与此流关联的所有系统资源。 此文件输出流可能不再用于写入字节。
如果此流具有关联的通道,则该通道也将关闭。
指定者:
在接口 AutoCloseable 中关闭
指定者:
在接口Closeable中关闭
覆盖:
在类 OutputStream 中关闭
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
getFD
public final FileDescriptor getFD() throws IOException
返回与此流关联的文件描述符。
返回:
FileDescriptor 对象,表示此 FileOutputStream 对象正在使用的文件系统中的文件的连接。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
getChannel
public FileChannel getChannel()
返回与此文件输出流关联的唯一 FileChannel 对象。
返回通道的初始位置将等于到目前为止写入文件的字节数,除非此流处于附加模式,在这种情况下它将等于文件的大小。 将字节写入此流将相应地增加通道的位置。 显式或通过写入更改通道的位置将更改此流的文件位置。
返回:
与此文件输出流关联的文件通道
Since:
1.4
finalize
protected void finalize() throws IOException
清理与文件的连接,并确保在不再引用此流时调用此文件输出流的 close 方法。
覆盖:
在类 Object 中完成
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |