java.io.File 代表路徑名稱(文件或目錄),不包含文件內容。無法直接讀寫數據,需配合流(FileInputStream 等)或 NIO2 (Files) 使用。核心能力:創建/刪除/重命名、屬性查詢、目錄遍歷。
針對常見「刪除文件/目錄」場景,封裝安全檢查與異常統一拋出:
public class FileExtension {
/** 刪除指定文件或空目錄 */
public static void deleteFile(String filename) {
File file = new File(filename);
if (!file.exists()) fail("Delete: no such file or directory: " + filename);
if (!file.canWrite()) fail("Delete: write protected: " + filename);
if (file.isDirectory()) {
String[] files = file.list();
if (files != null && files.length > 0)
fail("Delete: directory not empty: " + filename);
}
if (!file.delete()) fail("Delete: deletion failed");
}
private static void fail(String msg) {
throw new IllegalArgumentException(msg);
}
// 可擴展:createDir, listDir, getFileSize 等
}
IllegalArgumentException(運行時異常),調用者可選捕獲,避免強制 try-catch 汙染業務代碼。deleteRecursively 方法並加強警示。createDir(String path)、listFiles(String dir)、getFileSize(String path) 等高頻方法。Files.deleteIfExists、Files.walkFileTree,功能更豐富且支援符號鏈接、屬性讀取。static,無狀態,線程安全。掌握 File 類「路徑代表」定位,配合流或 NIO2 完成數據操作。封裝工具類時關注參數校驗、異常語義、資源釋放,可顯著提升代碼健壯性與可維護性。