探秘JDK7新特性之NIO2.0文件系統(tǒng)
java.io.File 不夠完美吧。Jdk7提供了一套新的文件系統(tǒng),會(huì)讓你滿意的。
先來聊聊java.io.File的七宗罪吧:)
1.很多方法失敗時(shí)候都沒有拋出異常,很難查找原因
2.方法 rename 在不同平臺(tái)中運(yùn)行有問題
3.不能真正支持 symbolic links
4.不能讀取文件的更詳細(xì)屬性,比如權(quán)限,所有者……
5.訪問 文件的 metadata 效率低下
6.很多方法性能不行。例如處理比較大的目錄
7.無法遞歸查找文件樹,以及存在循環(huán)的symbolic links可能造成問題
本次jdk7更新了很多新的api。方法太多了,我就不一一列舉了,感興趣的可以去查閱api
http://download.java.net/jdk7/docs/api/java/nio/file/package-summary.html
主要包括:
FileSystem 提供了許多方法來獲得當(dāng)前文件系統(tǒng)的相關(guān)信息。
Path 處理路徑(文件和目錄),包括
創(chuàng)建path,Paths.get(String s)
獲得path的詳細(xì)信息 getName(),getXX()…
刪除path的冗余信息 toRealPath
轉(zhuǎn)換path toAbsolutePath()
合并兩個(gè)path resolve()
在兩個(gè)path之間創(chuàng)建相對(duì)路徑 relativeze()
比較路徑 equal() startsWith(),endWith()
Files 支持各種文件操作,包括
移動(dòng)文件,
復(fù)制文件,
刪除文件,
更詳細(xì)的文件屬性,包括文件權(quán)限,創(chuàng)建者,修改時(shí)間……
Walking the File Tree(遞歸遍歷文件樹)
Watch a Directory for Change (監(jiān)聽文件更改)
【編輯推薦】