java.io.File 不够完美吧。Jdk7提供了一套新的文件系统,会让你满意的。 html
先来聊聊java.io.File的七宗罪吧:)
1.不少方法失败时候都没有抛出异常,很难查找缘由
2.方法 rename 在不一样平台中运行有问题
3.不能真正支持 symbolic links
4.不能读取文件的更详细属性,好比权限,全部者……
5.访问 文件的 metadata 效率低下
6.不少方法性能不行。例如处理比较大的目录
7.没法递归查找文件树,以及存在循环的symbolic links可能形成问题 java
本次jdk7更新了不少新的api。方法太多了,我就不一一列举了,感兴趣的能够去查阅api
http://download.java.net/jdk7/docs/api/java/nio/file/package-summary.html
api
主要包括:
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 (监听文件更改) 异步