首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java I/O 實戰:File 類核心操作與封裝最佳實踐

     編輯:Java 相關知識

File 類本質

java.io.File 代表路徑名稱(文件或目錄),不包含文件內容。無法直接讀寫數據,需配合流(FileInputStream 等)或 NIO2 (Files) 使用。核心能力:創建/刪除/重命名、屬性查詢、目錄遍歷。

封裝示例:FileExtension 工具類

針對常見「刪除文件/目錄」場景,封裝安全檢查與異常統一拋出:

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 等
}

關鍵設計點解析

  1. 前置校驗:存在性、寫權限、目錄非空檢查,失敗快速拋出異常。
  2. 統一異常:拋出 IllegalArgumentException(運行時異常),調用者可選捕獲,避免強制 try-catch 汙染業務代碼。
  3. 只刪空目錄:避免誤刪重要數據;如需遞歸刪除,建議另提供 deleteRecursively 方法並加強警示。

擴展建議

  • 補全 createDir(String path)、listFiles(String dir)、getFileSize(String path) 等高頻方法。
  • 生產環境建議遷移至 NIO2 Files.deleteIfExists、Files.walkFileTree,功能更豐富且支援符號鏈接、屬性讀取。
  • 工具類方法均為 static,無狀態,線程安全。

總結

掌握 File 類「路徑代表」定位,配合流或 NIO2 完成數據操作。封裝工具類時關注參數校驗、異常語義、資源釋放,可顯著提升代碼健壯性與可維護性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved