afrag  
          記錄學習和成長的歷程
          日歷
          <2010年3月>
          28123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910
          統計
          • 隨筆 - 9
          • 文章 - 5
          • 評論 - 2
          • 引用 - 0

          導航

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          文章檔案

          搜索

          •  

          積分與排名

          • 積分 - 10202
          • 排名 - 2380

          最新評論

          閱讀排行榜

          評論排行榜

           
          轉載自開發者的天空
          1. Path的概念

          文件系統會把文件進行組織并存放在媒介上,通常是一個或多個硬盤上。目前使用的大多數的文件系統是以樹形的方式來存儲文件的。在樹的頂端是一個(或多個) 根節點,在根節點之下是文件和目錄,目錄下又可以包含文件和目錄。理論上可以這樣一層層的一直嵌套下去(當然實際中是不可能的,例如Windows系統對 路徑的長度有限制)。
          下面的圖中展示了一個包含一個根節點的目錄樹。(在Windows系統中支持多個根節點,例如C:\和D:\分別是一個根節點。)
          io-dirStructure.JPG
          Path能夠唯一的標識文件系統中的某一個文件。例如上面圖中的statusReport文件在Windows系統中就可以使用以下的Path來標識:
          c:\home\sally\statusReport
          在solaris系統中,其path為
          /home/sally/statusReport.
          Path中的分隔符在不同的文件系統中是不同的,例如在Windows系統中使用\,在Solaris系統中使用/。
          Path又可以分為絕對路徑和相對路徑。絕對路徑總是含有根節點和用來定位文件的完整的目錄列表。例如/home/sally/statusReport 就是絕對路徑。相對路徑需要和另外的路徑結合在一起才能夠確定一個文件。例如加哦加哦哦joe/foo就是一個相對路徑,如果沒有其他的信息,程序就沒有 辦法定位這個文件。我們必須說這個是相對/home的相對路徑,這樣我們才能夠找到它。
          除了我們熟悉的目錄和文件之外,有一些文件系統中還支持符號鏈接(symbolic link),也稱為symlink或soft link。一個符號鏈接是一個特殊的文件,它實際上是另外一個鏈接的引用。在大多數情況下符號鏈接對應用程序是透明的,對符號鏈接的操作會自動的重定向到 鏈接所指向的目的地,除非操作是刪除這個符號鏈接、重命名這個符號鏈接或修改符號鏈接的目的地。
          在下面的圖中,logFile對于用戶來說就是一個常規的文件,但是實際上是一個符號鏈接,鏈接到dir/logs/HomeLogFile文件。 HomeLogFile是這個鏈接的目的地。
          io-symlink.jpg
          不恰當的使用符號鏈接會導致循環引用,例如目錄A是一個符號鏈接,指向目錄B,目錄B下有一個子目錄是符號鏈接,指向目錄A的父目錄。這樣,當程序企圖遞 歸的遍歷整個目錄樹時,就會出問題。幸運的是,這個問題已經被發現了,并且不會導致程序的死循環。


          2.Path類
          Path類是JDK7新引入的一個類,該類是java.io.file包的基石。
          和類的名稱所展示的一樣,Path類就是文件系統中path概念的程序表現。Path對象包含了文件名和目錄列表,這些信息可以用來創建path,并且用 來檢驗、定位和操作文件。
          Path實例是和底層操作系統相關的。在Solaris系統中,Path使用Solaris的句法(/home/joe/foo);在Window操作系 統中,Path會使用Window的句法(C:\home\joe\foo)。因此Path不是操作系統無關的。你不能夠比較一個來自Solaris文件 系統的Path和一個來自Windows文件系統的Path并期望它們相等,在目錄結構和文件完全一樣的時候也不行。
          Path對應的文件或者目錄可以不存在。我們可以以不同的方式創建Path實例并操作它:擴展路徑、抽取路徑的一部分、和其他的Path比較。我們也可以 檢查Path對應的目錄或文件是否存在、創建文件或目錄、打開或刪除文件、修改許可權限等。
          Path類是能夠區分符號鏈接的。所有的Path的方法要么會檢測是否是符號鏈接并執行不同的操作,或者提供了一個選擇來使用戶能夠配置當遇到符號鏈接的 時候執行什么操作。
          Path類提供了很多易于使用的特性,Path類的方法可以分成兩類:

          • 路徑操作—返回路徑的一部分如根節點、名稱、父目錄的方法或者其他操作路徑的方法。
          • 文件操作—創建文件、打開文件、創建目錄、刪除文件、 拷貝文件等操作的方法。
          在下一篇文章中,我們會具體介紹Path類的這些方法。
          posted on 2010-03-25 23:34 afrag 閱讀(256) 評論(0)  編輯  收藏 所屬分類: Java 技術
           
          Copyright © afrag Powered by: 博客園 模板提供:滬江博客
          主站蜘蛛池模板: 福清市| 和静县| 独山县| 临漳县| 尼勒克县| 德惠市| 通辽市| 海南省| 正镶白旗| 西峡县| 乌审旗| 铁力市| 新和县| SHOW| 和平区| 兰坪| 紫云| 威信县| 湟源县| 临沧市| 苏尼特左旗| 萨嘎县| 壤塘县| 无棣县| 徐州市| 沧源| 沅陵县| 濉溪县| 三原县| 昌邑市| 南涧| 肇源县| 永州市| 达日县| 顺昌县| 潢川县| 炎陵县| 贡嘎县| 库车县| 天津市| 密山市|