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

Java 基礎強化:java.io.File 創建文件與目錄的三大方法詳解(mkdir、mkdirs、createNewFile)

     編輯:Java 綜合教學

前言

`java.io.File` 是 Java 操作文件系統的入口類,**注意:它只代表路徑抽象,不保證物理文件存在**。本文通過代碼實驗,徹底釐清 `mkdir()`、`mkdirs()`、`createNewFile()` 的行為差異與使用場景。

API 速查

方法功能返回值拋出異常典型場景
mkdir()創建**單級**目錄boolean:成功 true,失敗/已存在 falseSecurityException父目錄確定存在時創建子目錄
mkdirs()創建**多級**目錄(含父目錄)boolean:至少一級創建成功 trueSecurityException路徑可能多級不存在,一鍵建齊
createNewFile()創建**空文件**(父目錄必須存在)boolean:創建成功 true,已存在 falseIOException、SecurityException寫入數據前確保文件存在

實戰代碼與輸出

public class FileCreateDemo {
    public static void main(String[] args) throws IOException {
        // 1. 多級目錄:F:/AAA/BBB/CCC (AAA/BBB 可能不存在)
        File dirs = new File("F:/AAA/BBB/CCC");
        if (dirs.mkdirs()) {
            System.out.println("多級目錄創建成功:" + dirs.getPath());
            System.out.println("父目錄:" + dirs.getParent());
        }

        // 2. 單級目錄:在上一步建好的 CCC 下創建 DDD
        File single = new File("F:/AAA/BBB/CCC/DDD");
        if (single.mkdir()) { // 父目錄 CCC 已存在,mkdir 成功
            System.out.println("單級目錄創建成功:" + single.getPath());
        }

        // 3. 多級目錄下創建文件
        File file = new File("F:/AAA/BBB/CCC/DDD", "mytest.txt");
        if (file.createNewFile()) { // 父目錄 DDD 必須存在
            System.out.println("文件創建成功:" + file.getAbsolutePath());
            System.out.println("父目錄:" + file.getParent());
        }
    }
}

控制台輸出

多級目錄創建成功:F:\AAA\BBB\CCC
父目錄:F:\AAA\BBB
單級目錄創建成功:F:\AAA\BBB\CCC\DDD
文件創建成功:F:\AAA\BBB\CCC\DDD\mytest.txt
父目錄:F:\AAA\BBB\CCC\DDD

核心規則總結

  1. mkdir() 要求父目錄存在,否則返回 false,**不拋異常**。
  2. mkdirs() 自動遞歸創建父目錄**,適合「路徑不確定是否存在」場景。
  3. createNewFile() 要求父目錄存在**,否則拋 `IOException: 系統找不到指定的路徑`。
  4. 三個方法**均不覆蓋**已存在文件/目錄,返回 false 而非拋異常。
  5. 返回 `boolean` 請務必判斷,**不要忽略**,否則靜默失敗極難排查。

現代替代:NIO.2 (Java 7+)

Path path = Paths.get("F:/AAA/BBB/CCC");
Files.createDirectories(path); // 等同 mkdirs,支援屬性、異常細分
Files.createFile(path.resolve("mytest.txt")); // 原子創建,拋 FileAlreadyExistsException

建議:新專案優先使用 `java.nio.file.Files`,異常語義更豐富、支援符號鏈接、流式操作。

總結

搞清「單級/多級、目錄/文件、父目錄前置條件」三組對應關係,`File` 創建操作即可零失誤。記住:**mkdirs = 遞歸建目錄、mkdir = 單級建目錄、createNewFile = 建文件(父目錄必備)**。

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