探秘JDK7新特性之NIO2.0文件系統
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 (監聽文件更改)
【編輯推薦】