JDK 源码阅读笔记(一)--OutputStream
来源:互联网 发布:linux怎么运行脚本 编辑:程序博客网 时间:2024/06/05 21:07
FileOutputStream类
1.一个文件可以由多个FileOutputStream打开,这个特性跟具体的操作系统有关。
2.一个流关闭,文件并不一定关闭
3.不同流可向文件中写数据,这部分同步控制由底层控制,程序员可以不管。
这三个特性是由FileDescriptor保证的。当这个文件新创建了一个流时,计数器加一。
当一个流关闭时,FD计数器减一,这时还要看这个流的channel是否为null,如果不为null还要关闭channel,同时还得让FD计数器减一。
当FD计数器减为0时,并且isRunningFinalize(),则真正关闭文件。
BufferedOutputStream重要的方法,看英文注释。
public synchronized void write(byte b[], int off, int len) throws IOException {if (len >= buf.length) { /* If the request length exceeds the size of the output buffer, flush the output buffer and then write the data directly. In this way buffered streams will cascade harmlessly. */ flushBuffer(); out.write(b, off, len); return;}if (len > buf.length - count) { flushBuffer();}System.arraycopy(b, off, buf, count, len);count += len; }
- JDK 源码阅读笔记(一)--OutputStream
- OutputStream 源码阅读
- JDK 1.7源码阅读笔记(一)String,StringBuilder,StringBuffer
- jdk源码阅读一:ArrayList
- 从JDK源码看OutputStream
- JDK 1.8 HashMap 源码阅读一
- ReentrantLock的JDK源码阅读笔记
- FastDFS源码阅读笔记(一)
- Axel源码阅读笔记<一>
- FastDFS源码阅读笔记(一)
- libevent源码阅读笔记(一)
- memcached源码阅读笔记(一)
- JDK中java.io.OutputStream源码
- JDK 源码 阅读
- JDK源码阅读-ArrayList
- JDK 1.8 ArrayBlockingQueue 源码阅读(一)插入
- Gallery3D源码阅读笔记(一) RenderView.java
- winvnc源码阅读笔记(一)---------线程
- 支持向量机通俗导论(理解SVM的三层境界)
- 寻求老师指导
- perl中的typeglob(二)
- shell 学习
- Ubuntu软件安装位置
- JDK 源码阅读笔记(一)--OutputStream
- 批处理for命令/f参数的用法
- Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门
- 对学习的感悟
- Linux系统管理员都应该熟悉的工具
- 调查:2013年急需的十大热门 IT 技能
- 使用BinCompiler将资源文件打包成二进制文件(转载)
- POJ 1042 枚举+优先队列
- 管理员必备的20个Linux系统监控工具