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

Java 路徑體系:抽象路徑、絕對路徑、相對路徑深度解析

     編輯:程式設計綜合問答

三大概念

關鍵 API

File f = new File("data/test.txt");
System.out.println(f.getPath());        // data/test.txt (相對)
System.out.println(f.getAbsolutePath()); // /full/path/data/test.txt
System.out.println(f.getCanonicalPath()); // 解析 . .. 符號鏈接後的唯一絕對路徑

// 用戶工作目錄
System.out.println(System.getProperty("user.dir"));

相對路徑解析規則

  • new File("a", "b") → a/b(父路徑 + 子路徑)。
  • new File("a/../b") → 不自動規範,getCanonicalPath() 會解析。
  • 類路徑資源:ClassLoader.getResource("config.properties") 返回 URL,非文件系統路徑。

最佳實踐

  1. 配置文件用絕對路徑:new File(System.getProperty("user.home"), ".myapp/config")。
  2. 臨時文件用 Files.createTempFile:避免衝突、自動清理。
  3. 資源文件用 ClassLoader:getResourceAsStream("db.properties"),打包進 JAR 也能讀。
  4. 跨平台分隔符:File.separator、Paths.get(...) (NIO.2)。

NIO.2 現代 API

Path p = Paths.get("data", "test.txt");
System.out.println(p.toAbsolutePath());   // 絕對路徑
System.out.println(p.normalize());        // 移除 . ..
System.out.println(p.toRealPath());       // 規範路徑 (拋異常如果不存在)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型定義示例獲取方式
抽象路徑系統無關的路徑表示,由 File 類封裝new File("data", "test.txt")file.getPath()
相對路徑相對於「用戶工作目錄」的路徑data/test.txtfile.getPath()
絕對路徑從根目錄開始的完整路徑/home/user/project/data/test.txt (Linux)
C:\project\data\test.txt (Windows)
file.getAbsolutePath()