File類:
概述:java.io.File類是文件和目錄路徑名的抽象表示,用於文件和目錄的創建、查找、刪除等操作
構造方法:
public File(String pathname) :通過將給定的路徑名字符串轉換爲抽象路徑名來創建新的 File實例。
public File(String parent, String child) :從父路徑名字符串和子路徑名字符串創建新的 File實例。
public File(File parent, String child) :從父抽象路徑名和子路徑名字符串創建新的 File實例
注意事項:
1.一個File對象代表硬盤中實際存在的一個文件或者目錄
2.無論路徑的文件或者目錄是否存在,都不影響File對象的創建
常用方法:
public String getAbsolutePath() :返回此File的絕對路徑名字符串。
public File getAbsoluteFile(): 返回此File的絕對路徑名Flie對象
public String getPath() :將此File轉換爲路徑名字符串。File對象是以什麼路徑創建的就獲取什麼路徑 如果File對象是絕對路徑,就獲得絕對路徑,如果是相對路徑就獲得相對路徑
public String getName() :返回由此File表示的文件或目錄的名稱。
public long length() :返回由此File表示的文件的長度。
絕對路徑:從盤符開始的路徑,這是一個完整的路徑
相對路徑:相對於項目目錄的路徑,這是一個便捷的路徑,開發中常用
判斷功能的方法
public boolean exists() :此File表示的文件或目錄是否實際存在。
public boolean isDirectory() :此File表示的是否爲目錄。(判斷是不是文件夾或者存不存在)
public boolean isFile() :此File表示的是否爲文件。 (判斷是不是文件或者存不存在)
endsWith(string str): 判斷此文件是否跟括號內的文件名後綴一樣
創建刪除功能的方法
public boolean createNewFile() :當且僅當具有該名稱的文件尚不存在時,創建一個新的空文件。
public boolean delete() :刪除由此File表示的文件或目錄。1.刪除的文件或文件夾不走回收站,2.只能刪除空文件夾,3.刪除的文件要存在
public boolean mkdir() :創建由此File表示的目錄。(創建單個文件夾)
public boolean mkdirs() :創建由此File表示的目錄,包括任何必需但不存在的父目錄。 (創建多級文件夾)
文件夾遍歷
public String[] list() :返回一個String數組,獲取File文件夾中的所有文件名和文件夾名的字符串形式
public File[] listFiles() :返回一個File數組,獲取File文件夾中的所有文件名的絕對路徑和文件夾名的絕對路徑的File對象形式
public File[] listFiles(FileFilter fileFilter): 遍歷文件過濾器優化
遞歸:
概述: 方法自己調用自己
使用遞歸:找規律,找出口
遞歸的注意事項:
1.遞歸次數太多,會出現溢出異常。
2.遞歸一定要有出口,出口不能太晚,太晚也會出現異常
遞歸打印多級文件夾
public class DiGuiDemo2 {
public static void main(String[] args) {
// 創建File對象
File dir = new File("D:\\aaa");
// 調用打印目錄方法
printDir(dir);
}
public static void printDir(File dir) {
// 獲取子文件和目錄
File[] files = dir.listFiles();
// 循環打印
/*
判斷:
當是文件時,打印絕對路徑.
當是目錄時,繼續調用打印目錄的方法,形成遞歸調用.
*/
for (File file : files) {
// 判斷
if (file.isFile()) {
// 是文件,輸出文件絕對路徑
System.out.println("文件名:"+ file.getAbsolutePath());
} else {
// 是目錄,輸出目錄絕對路徑
System.out.println("目錄:"+file.getAbsolutePath());
// 繼續遍歷,調用printDir,形成遞歸
printDir(file);
}
}
}
}