探秘JDK7新特性之NIO2.0文件系统

来源:互联网 发布:源码资本地址 编辑:程序博客网 时间:2024/06/06 17:12
 

java.io.File 不够完美吧。Jdk7提供了一套新的文件系统,会让你满意的。

先来聊聊java.io.File的七宗罪吧:)

1.很多方法失败时候都没有抛出异常,很难查找原因

2.方法 rename 在不同平台中运行有问题

3.不能真正支持 symbolic links

4.不能读取文件的更详细属性,比如权限,所有者……

5.访问 文件的 metadata 效率低下

6.很多方法性能不行。例如处理比较大的目录

7.无法递归查找文件树,以及存在循环的symbolic links可能造成问题

本次jdk7更新了很多新的api。方法太多了,我就不一一列举了,感兴趣的可以去查阅api

http://download.java.net/jdk7/docs/api/java/nio/file/package-summary.html

主要包括:

FileSystem 提供了许多方法来获得当前文件系统的相关信息。

Path 处理路径(文件和目录),包括

创建path,Paths.get(String s)

获得path的详细信息 getName(),getXX()…

删除path的冗余信息 toRealPath

转换path toAbsolutePath()

合并两个path resolve()

在两个path之间创建相对路径 relativeze()

比较路径 equal() startsWith(),endWith()

Files 支持各种文件操作,包括

移动文件,

复制文件,

删除文件,

更详细的文件属性,包括文件权限,创建者,修改时间……

Walking the File Tree(递归遍历文件树)

Watch a Directory for Change (监听文件更改)