文件和目錄路徑名的抽象表示,通常,file:操做文件,directory:目錄/文件夾,path:路徑linux
當在不一樣系統中路徑分割符;:和名稱分隔符/\是不一樣的,能夠使用File的靜態變量來表示以作到系統無關git
public static final String pathSeparator;
Windows中爲;分號,而linux裏則爲:冒號。這個在win和linux的環境變量的配置中的路徑就能看出github
public static final String pathSeparator
Windows中爲,而linux則爲/數組
絕對路徑:以系統的根路徑開始的,Windows中就以盤符開始的
相對路徑:Java當前項目的根目錄開始的,不是本文件的路徑開始的函數
建立File對象,只是把字符串路徑封裝成File對象,不考慮路徑的真假狀況,路徑能夠以文件或文件夾結尾,能夠是絕對路徑也能夠是相對路徑,固然路徑也能夠不實際存在測試
File(String pathname) 經過將給定的路徑名字符串轉換爲抽象路徑名來建立新的 File實例。 File(File parent, String child) 從父抽象路徑名和子路徑名字符串建立新的 File實例。 File(String parent, String child) 從父路徑名字符串和子路徑名字符串建立新的 File實例。 File(URI uri) 經過將給定的 file: URI轉換爲抽象路徑名來建立新的 File實例。
獲取絕對路徑,即便建立時傳入的是相對路徑,最後也是獲取到絕對路徑。而getPath()則就是獲取的傳入的路徑指針
public String getAbsolutePath()code
public long length()
返回由此抽象路徑名錶示的文件的長度。 若是此路徑名錶示目錄,則返回值未指定。
注意文件夾是沒有大小的,這裏length返回的是文件的大小以字節爲單位,若是沒有文件就返回0,文件夾也返回0,不是路徑的長度對象
exists() 判斷文件和文件夾是否存在
isDirectory 判斷是否文文件夾/目錄
isFile() 判斷是不是文件
建立文件
public boolean createNewFile()
public boolean delete()--對應的就是刪除文件或文件夾
---當File對象傳入的路徑(路徑在File的構造方法中給出)正確,而且文件不存在時建立文件返回true,若是文件已存在返回false,若是文件路徑不存在拋出異常
建立文件夾
public boolean mkdir()
public boolean mkdir()--建立多級文件夾
建立單級文件夾,文件夾存在則不建立返回false,沒有文件夾則建立並返回true;若是路徑不存在也不會建立而且不會拋出異常並返回false
public String[] list() --返回一個字符串數組,命名由此抽象路徑名錶示的目錄中的文件和目錄。
public File[] listFiles()---返回一個抽象路徑名數組,表示由該抽象路徑名錶示的目錄中的文件。
list()和listFiles()在File的構造方法路徑中的路徑不存在或者不是一個目錄都會返回null空指針異常
在File對象的String[] list()方法中重載了一個方法:list(FilenameFilter filter),listFiles()也重載了兩個方法File[] listFiles(FileFilter filter)和File[] listFiles(FilenameFilter filter)來對文件進行過濾
兩個接口都沒有實現類,須要本身定義實現類並重寫過濾方法
//這裏就是在使用File.listFiles()方法是傳入一個過濾器,來過濾文件流,使用lambda表達式 File[] files = dir.listFiles(file -> file.isDirectory() || file.getName().toLowerCase().endsWith(".java"));
本博客爲Swagger-Ranger的筆記分享,文章會持續更新 文中源碼地址: https://github.com/Swagger-Ranger 歡迎交流指正,若有侵權請聯繫做者確認刪除: liufei32@outlook.com