NIO.2
JDK 7 对 NIO 进行了重大增强,引入了现代化的文件操作 API。
核心内容
Path 与 Files
Path 是文件路径的现代化表示,替代了旧的 File 类。
Files 是文件操作的全能工具类,读写、复制、移动、遍历,一个类全搞定。
详见:Files 工具类
WatchService
WatchService 让你监听文件系统的变化,实现热重载、文件同步等功能。
为什么需要 NIO.2
旧 API 的问题:
File类的方法返回值不一致,有的返回 boolean,有的返回 voidFile类不支持Path,处理路径字符串很麻烦- 没有统一的时间属性 API
- 遍历目录不支持流式处理
NIO.2 的改进:
Path+Files统一了文件操作- 所有操作都返回一致的类型
- 支持流式处理,符合函数式编程趋势
WatchService弥补了旧 API 缺失的文件监听能力
总结
| 组件 | 作用 | 替代 |
|---|---|---|
Path | 文件路径表示 | File |
Paths | 创建 Path 工具 | new File() |
Files | 文件操作全能类 | File 的各种方法 |
WatchService | 文件监听 | 无 |
NIO.2 让 Java 的文件操作终于现代化了。
如果你是从旧版本升级过来的,值得花时间熟悉这套新 API。
