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 (監聽文件更改) 異步