- 所有已实现的接口:
-
Closeable
,Flushable
,AutoCloseable
File
或FileDescriptor
写入数据的输出流。文件是否可用或可创建取决于底层平台。一些平台,特别是只允许一个FileOutputStream
(或其他写文件对象)写入文件。在这种情况下,如果涉及的文件已经打开,则此类中的构造函数将失败。
FileOutputStream
用于写入原始字节流,如图像数据。对于写入字符流,请考虑使用FileWriter
。
-
Constructor Summary
ConstructorDescriptionFileOutputStream
(File file) 创建一个文件输出流以写入由指定的File
对象表示的文件。FileOutputStream
(FileDescriptor fdObj) 创建一个文件输出流以写入表示文件系统中实际文件的现有连接的指定文件描述符。FileOutputStream
(File file, boolean append) 创建一个文件输出流以写入由指定的File
对象表示的文件。FileOutputStream
(String name) 创建一个文件输出流以写入具有指定名称的文件。FileOutputStream
(String name, boolean append) 创建一个文件输出流以写入具有指定名称的文件。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
关闭此文件输出流并释放与此流关联的任何系统资源。返回与此文件输出流关联的唯一FileChannel
对象。final FileDescriptor
getFD()
返回与此流关联的文件描述符。void
write
(byte[] b) 将指定的字节数组中的b.length
字节写入此文件输出流。void
write
(byte[] b, int off, int len) 从指定的字节数组中的偏移量off
开始,将len
字节写入此文件输出流。void
write
(int b) 将指定的字节写入此文件输出流。Methods declared in class java.io.OutputStream
flush, nullOutputStream
-
Constructor Details
-
FileOutputStream
创建一个文件输出流以写入具有指定名称的文件。创建一个新的FileDescriptor
对象来表示此文件连接。首先,如果存在安全管理器,则将
name
作为参数调用其checkWrite
方法。如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开,则会抛出
FileNotFoundException
。- 实现要求:
-
使用参数
name
调用此构造函数等效于调用new FileOutputStream(name, false)
。 - 参数:
-
name
- 系统相关的文件名 - 抛出:
-
FileNotFoundException
- 如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开 -
SecurityException
- 如果存在安全管理器且其checkWrite
方法拒绝对文件的写访问。 - 参见:
-
FileOutputStream
创建一个文件输出流以写入具有指定名称的文件。如果第二个参数为true
,则字节将被写入文件的末尾而不是开头。创建一个新的FileDescriptor
对象来表示此文件连接。首先,如果存在安全管理器,则将
name
作为参数调用其checkWrite
方法。如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开,则会抛出
FileNotFoundException
。- 参数:
-
name
- 系统相关的文件名 -
append
- 如果为true
,则字节将被写入文件的末尾而不是开头 - 抛出:
-
FileNotFoundException
- 如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开。 -
SecurityException
- 如果存在安全管理器且其checkWrite
方法拒绝对文件的写访问。 - 自从:
- 1.1
- 参见:
-
FileOutputStream
创建一个文件输出流以写入由指定的File
对象表示的文件。创建一个新的FileDescriptor
对象来表示此文件连接。首先,如果存在安全管理器,则将
file
参数表示的路径作为参数调用其checkWrite
方法。如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开,则会抛出
FileNotFoundException
。- 参数:
-
file
- 要打开以进行写入的文件。 - 抛出:
-
FileNotFoundException
- 如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开 -
SecurityException
- 如果存在安全管理器且其checkWrite
方法拒绝对文件的写访问。 - 参见:
-
FileOutputStream
创建一个文件输出流以写入由指定的File
对象表示的文件。如果第二个参数为true
,则字节将被写入文件的末尾而不是开头。创建一个新的FileDescriptor
对象来表示此文件连接。首先,如果存在安全管理器,则将
file
参数表示的路径作为参数调用其checkWrite
方法。如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开,则会抛出
FileNotFoundException
。- 参数:
-
file
- 要打开以进行写入的文件。 -
append
- 如果为true
,则字节将被写入文件的末尾而不是开头 - 抛出:
-
FileNotFoundException
- 如果文件存在但是目录而不是常规文件,不存在但无法创建,或由于其他原因无法打开 -
SecurityException
- 如果存在安全管理器且其checkWrite
方法拒绝对文件的写访问。 - 自从:
- 1.4
- 参见:
-
FileOutputStream
创建一个文件输出流以写入表示文件系统中实际文件的现有连接的指定文件描述符。首先,如果存在安全管理器,则将文件描述符
fdObj
作为参数调用其checkWrite
方法。如果
fdObj
为null,则会抛出NullPointerException
。如果
fdObj
为invalid
,则此构造函数不会抛出异常。但是,如果在结果流上调用方法以尝试在流上进行I/O,则会抛出IOException
。- 参数:
-
fdObj
- 要打开以进行写入的文件描述符 - 抛出:
-
SecurityException
- 如果存在安全管理器且其checkWrite
方法拒绝对文件描述符的写访问 - 参见:
-
-
Method Details
-
write
将指定的字节写入此文件输出流。实现了OutputStream
中的write
方法。- 指定者:
-
write
在类中的OutputStream
- 参数:
-
b
- 要写入的字节。 - 抛出:
-
IOException
- 如果发生I/O错误。
-
write
从指定的字节数组中写入b.length
字节到此文件输出流。- 覆盖:
-
write
在类中的OutputStream
- 参数:
-
b
- 数据。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
write
从指定的字节数组中,从偏移量off
开始写入len
字节到此文件输出流。- 覆盖:
-
write
在类中的OutputStream
- 参数:
-
b
- 数据。 -
off
- 数据中的起始偏移量。 -
len
- 要写入的字节数。 - 抛出:
-
IOException
- 如果发生I/O错误。 -
IndexOutOfBoundsException
- 如果off
为负数,len
为负数,或者len
大于b.length - off
-
close
关闭此文件输出流并释放与此流关联的任何系统资源。此文件输出流可能不再用于写入字节。如果此流有关联的通道,则通道也将被关闭。
- 指定者:
-
close
在接口中的AutoCloseable
- 指定者:
-
close
在接口中的Closeable
- 覆盖:
-
close
在类中的OutputStream
- API注释:
-
重写
close()
以执行清理操作只有在直接调用或通过try-with-resources调用时才是可靠的。 - 实现要求:
-
需要在流变得不可达后进行资源清理的子类应使用
Cleaner
机制。如果此流有关联的通道,则此方法将关闭通道,进而关闭此流。重写此方法的子类应准备处理可能的重入调用。
- 抛出:
-
IOException
- 如果发生I/O错误。
-
getFD
返回与此流关联的文件描述符。- 返回:
-
代表此
FileOutputStream
对象正在使用的文件系统中文件连接的FileDescriptor
对象。 - 抛出:
-
IOException
- 如果发生I/O错误。 - 参见:
-
getChannel
返回与此文件输出流关联的唯一FileChannel
对象。返回的通道的初始
position
将等于到目前为止写入文件的字节数,除非此流处于追加模式,在这种情况下,它将等于文件的大小。向此流写入字节将相应地增加通道的位置。显式更改通道的位置,无论是显式还是通过写入,都将更改此流的文件位置。- 返回:
- 与此文件输出流关联的文件通道
- 自:
- 1.4
-