JDK源码:FileOutputStream

Posted jdkSpring

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDK源码:FileOutputStream相关的知识,希望对你有一定的参考价值。

FileOutputStream用于写入原始字节流,如图像数据。要编写字符流,请考虑使用FileWriter。

文件输出流是将数据写入文件或文件描述符的输出流。文件是否可用或是否可以创建取决于底层平台。特别是某些平台,一次只允许一个FileOutputStream(或其他文件写入对象)打开一个文件进行写入。在这种情况下,如果所涉及的文件已打开,则此类中的构造函数将失败。

FileOutputStream和FileInputStream一样,在创建的时候主要做了两件事一个是new一个FileDescriptor(文件描述符),一个便是调用了open方法。

同时,FileOutputStream也有一个相同的静态代码块。

private static native void initIDs();static { initIDs();}
类名
publicclass FileOutputStream extends OutputStream
成员变量
/** * 依赖于系统的文件描述符. */private final FileDescriptor fd;/** * 如果文件是为追加而打开的,则为True. */private final boolean append;/** * 关联的通道. */private FileChannel channel;/** * 文件的路径 */private final String path;//关闭时的同步锁 private final Object closeLock =                    new Object();private volatile boolean closed = false;
方法
FileOutputStream构造方法共有五个,但是前三个最终都是调用第四个方法 public FileOutputStream(File file, boolean append)
第五个构造方法是使用FileDescriptor创建FileOutputStream, FileOutputStream(FileDescriptor fdObj)
JDK源码(十一):FileOutputStream
打开文件open方法底层调用native方法open0
JDK源码(十一):FileOutputStream
write(int b)

JDK源码(十一):FileOutputStream

write(byte b[]) 和 write(byte b[], int off, int len)都是调用底层native方法native void writeBytes(byte b[], int off, int len, boolean append)

JDK源码(十一):FileOutputStream

close()
JDK源码(十一):FileOutputStream
代码注释

案例


以上是关于JDK源码:FileOutputStream的主要内容,如果未能解决你的问题,请参考以下文章

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?(代码片

No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?(代码片

JavaSE8基础 FileOutputStream write 写入txt文本时实现数据追加

oracle jdk和openjdk区别;idea如何加载jdk源码并调试jdk代码

idea 导入 jdk源码 解决compile code 后阅读jdk 源码

FileOutputStream flush()