文件拷贝的方式
- 利用FileInputStream,FileOutPutStream来进行
- 利用 java.nio 类库提供的 transferTo 或 transferFrom;效率更高,减少不必要的拷贝和上下文切换
文件拷贝流程
用户态(User Space),内核态(Kernel Space);设计到上下文切换
- 读取步骤;从内核态读取磁盘到内核缓存,切换到用户态从内核缓存读取磁盘信息;
- 写入步骤:从用户态写入到内核缓存,内核态读取内核缓存写入磁盘
文件拷贝优化建议
- 利用缓存机制,合理减少io次数
- 利用transfer技术,减少上下文切换和额外的io操作
- 减少不必要的转换步骤,比如编解码
Buffer
除了Boolean类型,其他基本类型都有buffer;
- capacity,缓冲区容量
- limit,操作上限
- position,开始位置
- mark,上一次的位置,不是必须的