FileOutputStream源代码学习笔记

一、属性

private FileChannel channel;

private final Object closeLock = new Object();//关闭文件的同步锁

private volatile boolean closed = false;

二、方法

  1. FileOutputStream(FileDescriptor)时,path为null;
  2. close()使用了锁,同时需要关闭channel和fd文件句柄。
  3. finalize()标准输出和错误调用子类的flush(),其他调用close()。
  4. open(String, boolean)调用本地方法。私有,供初始化时使用。
  5. write(byte[])调用write(byte[], int, int),write(byte[], int, int)调用本地方法writeBytes(byte[], int, int, boolean)。
  6. write(int)调用本地方法write(int, boolean)。

三、总结

注意第一条。

关闭文件那里有点难理解。

核心方法就是write(byte[], int, int)。

Author: bkdwei