java獲取類路徑下文件的絕對路徑


獲取文件絕對路徑

在idea中,默認的當前路徑是project的根路徑,如果你使用idea的默認路徑,只要離開idea換到其他位置,可能當前路徑就不是project的根路徑了。

使用一下通用方式的前提是:這個文件必須在類路徑下。在項目的src目錄下的都是類路徑下,src是類的根路徑

String currentPath = Thread.currentThread().getContextClassLoader().getResource("fileName").getPath();

Thread.currentThread()是當前線程對象

getContextClassLoader()是線程對象的方法,可以獲取到當前線程類加載器對象。

getResource()類加載器的方法,當前線程的類加載器默認從類的根路徑下加載資源。

采用以上方法可以拿到一個文件的絕對路徑

這種方式無法獲取一個.java文件,因為java程序是需要編譯后才能執行,而 .java會被編譯成 .class
而java編譯時可能會被編譯在別的路徑下,例如IDEA,是在target文件下,這才是真正的類路徑

資源綁定器

java.util包下提供了一個資源綁定器,便於獲取屬性配置文件中的內容。使用以下這種方式的時候,屬性配置文件xxx.properties必須放到類路徑下。

例如我類路徑下有一個properties.properties文件:

public static String get(String key) {
  ResourceBundle rb = ResourceBundle.getBundle("properties");
  return rb.getString(key);
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM