Java中關於文件路徑讀取問題的分析
Java讀取文件路徑
記錄一種通用獲取文件絕對路徑的方法,即使代碼換瞭位置瞭,這樣編寫也是通用的:
註意:
使用以下方法的前提是文件必須在類路徑下,類路徑:凡是在src下的都是類路徑。
1.拿到User.properties文件的絕對路徑:
package com.lxc.domain; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.Properties; public class Test { public static void main(String[] args) { try { /** * Thread.currentThread() 當前線程對象 * getContextClassLoader() 線程方法,獲取的是當前線程的類加載器對象 * getResource("") 這是類加載器對象的方法,當前線程的類加載器默認從類的根路徑下加載資源 * */ String path = Thread.currentThread().getContextClassLoader().getResource("User.properties").getPath(); System.out.println(path); FileReader reader = new FileReader(path); } }
2.還可以以流的方式直接獲取到文件流,直接加載
package com.lxc.domain; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class Fanshe { public static void main(String[] args) { // 以流的方式讀取 InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("com/lxc/domain/userProperties.properties"); Properties properties = new Properties(); try { properties.load(inputStream); inputStream.close(); System.out.println(properties.getProperty("username")); } catch (IOException e) { e.printStackTrace(); } } }
這裡還要註意一個小點:
資源配置文件放到resource文件夾下和放到包路徑下,打包編譯之後資源文件的存放位置會不一樣,放到resource文件夾下打包編譯值後的位置在classes文件夾下:
放到包文件夾,打包編譯值後的位置在相應的包下:
3.通過資源綁定器獲取到資源文件信息
使用資源綁定器獲取資源文件信息,前提:
(1)資源文件必須在類路徑下,如果不在resource文件夾下,而是在包下,處理方式如下;
(2)參數不需要帶後綴
package com.lxc.domain; import java.util.ResourceBundle; public class Fanshe { public static void main(String[] args) { ResourceBundle resourceBundle = ResourceBundle.getBundle("User"); String username = resourceBundle.getString("username"); System.out.println(username); }
如果在包文件夾下,路徑應該這樣寫:
package com.lxc.domain; import java.util.ResourceBundle; public class Fanshe { public static void main(String[] args) { ResourceBundle resourceBundle = ResourceBundle.getBundle("com/lxc/domain/User"); String username = resourceBundle.getString("username"); System.out.println(username); } }
到此這篇關於Java中關於文件路徑讀取問題的分析的文章就介紹到這瞭,更多相關Java讀取文件路徑內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- java如何實時動態獲取properties文件的內容
- 聊聊ResourceBundle和properties讀取配置文件的區別
- 徹底搞懂Java多線程(三)
- Java反射機制基礎詳解
- 徹底搞懂Java多線程(四)