1、File類的概述
能夠經過File類對操做系統的文件、文件夾進行操做數組
file:文件操作系統
directory:文件、目錄指針
path:路徑code
2、File類的靜態成員變量
pathSeparator路徑分隔符。在Windows中是分號; 在Linux中是冒號:對象
separator文件名分隔符。在Windows中是反斜槓\ 在Linux中是正斜槓/遞歸
3、絕對路徑和相對路徑
絕對路徑:是一個盤符爲開始的路徑內存
相對路徑:是以當前項目爲根目錄的路徑字符串
注意:1.路徑不區分大小寫get
2.路徑中的文件名分隔符Windows使用的是反斜槓,反斜槓是轉義字符,兩個反斜槓表明一個普通斜槓。源碼
4、File類的構造方法
public File(String pathname)
:經過將給定的路徑名字符串轉換爲抽象路徑名來建立新的 File實例。
public File(String parent, String child)
:從父路徑名字符串和子路徑名字符串建立新的 File實例。
public File(File parent, String child)
:從父抽象路徑名和子路徑名字符串建立新的 File實例。
5、File類的經常使用方法
獲取功能的方法
- public String getAbsolutePath() :返回此File的絕對路徑名字符串。 獲取的構造方法中傳遞的路徑 不管路徑是絕對的仍是相對的,getAbsolutePath方法返回的都是絕對路徑
- public String getPath() :將此File轉換爲路徑名字符串。 獲取的構造方法中傳遞的路徑 toString方法調用的就是getPath方法 源碼: public String toString() { return getPath(); }
- public String getName() :返回由此File表示的文件或目錄的名稱。 獲取的就是構造方法傳遞路徑的結尾部分(文件/文件夾)
- public long length() :返回由此File表示的文件的長度。 獲取的是構造方法指定的文件的大小,以字節爲單位 注意: 文件夾是沒有大小概念的,不能獲取文件夾的大小 若是構造方法中給出的路徑不存在,那麼length方法返回0
判斷功能的方法
- public boolean exists() :此File表示的文件或目錄是否實際存在。 用於判斷構造方法中的路徑是否存在 存在:true 不存在:false
- public boolean isDirectory() :此File表示的是否爲目錄。 用於判斷構造方法中給定的路徑是否以文件夾結尾 是:true 否:false
- public boolean isFile() :此File表示的是否爲文件。 用於判斷構造方法中給定的路徑是否以文件結尾 是:true 否:false
注意: 電腦的硬盤中只有文件/文件夾,兩個方法是互斥 這兩個方法使用前提,路徑必須是存在的,不然都返回false
建立和刪除功能的方法
- public boolean createNewFile() :當且僅當具備該名稱的文件尚不存在時,建立一個新的空文件。 建立文件的路徑和名稱在構造方法中給出(構造方法的參數) 返回值:布爾值 true:文件不存在,建立文件,返回true false:文件存在,不會建立,返回false 注意: 1.此方法只能建立文件,不能建立文件夾 2.建立文件的路徑必須存在,不然會拋出異常 public boolean createNewFile() throws IOException createNewFile聲明拋出了IOException,咱們調用這個方法,就必須的處理這個異常,要麼throws,要麼trycatch
- public boolean mkdir() :建立單級空文件夾 public boolean mkdirs() :既能夠建立單級空文件夾,也能夠建立多級文件夾 建立文件夾的路徑和名稱在構造方法中給出(構造方法的參數) 返回值:布爾值 true:文件夾不存在,建立文件夾,返回true false:文件夾存在,不會建立,返回false;構造方法中給出的路徑不存在返回false 注意: 1.此方法只能建立文件夾,不能建立文件
- public boolean delete() :刪除由此File表示的文件或目錄。 此方法,能夠刪除構造方法路徑中給出的文件/文件夾 返回值:布爾值 true:文件/文件夾刪除成功,返回true false:文件夾中有內容,不會刪除返回false;構造方法中路徑不存在false 注意: delete方法是直接在硬盤刪除文件/文件夾,不走回收站,刪除要謹慎
遍歷文件夾功能
- public String[] list() :返回一個String數組,表示該File目錄中的全部子文件或目錄。 遍歷構造方法中給出的目錄,會獲取目錄中全部文件/文件夾的名稱,把獲取到的多個名稱存儲到一個String類型的數組中
- public File[] listFiles() :返回一個File數組,表示該File目錄中的全部的子文件或目錄。 遍歷構造方法中給出的目錄,會獲取目錄中全部的文件/文件夾,把文件/文件夾封裝爲File對象,多個File對象存儲到File數組中
注意: list方法和listFiles方法遍歷的是構造方法中給出的目錄 若是構造方法中給出的目錄的路徑不存在,會拋出空指針異常 若是構造方法中給出的路徑不是一個目錄,也會拋出空指針異常
6、遞歸
遞歸的概念和分類
遞歸:方法本身調用本身 - 遞歸的分類: - 遞歸分爲兩種,直接遞歸和間接遞歸。 - 直接遞歸稱爲方法自身調用本身。 - 間接遞歸能夠A方法調用B方法,B方法調用C方法,C方法調用A方法。
遞歸的注意事項
- 遞歸必定要有條件限定,保證遞歸可以中止下來,不然會發生棧內存溢出。
- 在遞歸中雖然有限定條件,可是遞歸次數不能太多。不然也會發生棧內存溢出。
- 構造方法,禁止遞歸 遞歸的使用前提: 當調用方法的時候,方法的主體不變,每次調用方法的參數不一樣,可使用遞歸
7、FileFilter過濾器的原理和使用
實際上FileFilter和FileNameFilter就是對文件名的一種篩選方法,一種機制讓你對你的代碼有一種更加清晰的分析。