Java中關(guān)于文件路徑讀取問(wèn)題的分析
Java讀取文件路徑
記錄一種通用獲取文件絕對(duì)路徑的方法,即使代碼換了位置了,這樣編寫也是通用的:
注意:
使用以下方法的前提是文件必須在類路徑下,類路徑:凡是在src下的都是類路徑。
1.拿到User.properties文件的絕對(duì)路徑:
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() 當(dāng)前線程對(duì)象 * getContextClassLoader() 線程方法,獲取的是當(dāng)前線程的類加載器對(duì)象 * getResource("") 這是類加載器對(duì)象的方法,當(dāng)前線程的類加載器默認(rèn)從類的根路徑下加載資源 * */ 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(); } } }
這里還要注意一個(gè)小點(diǎn):
資源配置文件放到resource文件夾下和放到包路徑下,打包編譯之后資源文件的存放位置會(huì)不一樣,放到resource文件夾下打包編譯值后的位置在classes文件夾下:
放到包文件夾,打包編譯值后的位置在相應(yīng)的包下:
3.通過(guò)資源綁定器獲取到資源文件信息
使用資源綁定器獲取資源文件信息,前提:
(1)資源文件必須在類路徑下,如果不在resource文件夾下,而是在包下,處理方式如下;
(2)參數(shù)不需要帶后綴
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); }
如果在包文件夾下,路徑應(yīng)該這樣寫:
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); } }
到此這篇關(guān)于Java中關(guān)于文件路徑讀取問(wèn)題的分析的文章就介紹到這了,更多相關(guān)Java讀取文件路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java Spring5學(xué)習(xí)之JdbcTemplate詳解
這篇文章主要介紹了Java Spring5學(xué)習(xí)之JdbcTemplate詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-05-05java中hashmap容量的初始化實(shí)現(xiàn)
這篇文章主要介紹了java中hashmap容量的初始化實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11springboot?使用websocket技術(shù)主動(dòng)給前端發(fā)送消息的實(shí)現(xiàn)
這篇文章主要介紹了springboot?使用websocket技術(shù)主動(dòng)給前端發(fā)送消息的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12關(guān)于Mybatis 中使用Mysql存儲(chǔ)過(guò)程的方法
這篇文章給大家介紹了Mybatis 中使用Mysql存儲(chǔ)過(guò)程的方法,本文通過(guò)實(shí)例代碼相結(jié)合的形式給大家介紹的非常詳細(xì),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-03-03Springcloud hystrix服務(wù)熔斷和dashboard如何實(shí)現(xiàn)
這篇文章主要介紹了Springcloud hystrix服務(wù)熔斷和dashboard如何實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12