Java獲取文件的路徑及常見問題解決方案
在java中讀取讀取文件,經(jīng)常因?yàn)槁窂降膯栴}找不到,此文用于記錄如何定位文件的簡單方法。
本基于springboot做的測試,主要是構(gòu)建工程方便,所用的方法都是JDK中的方法,主要測試有”/“和沒有""的問題,以及getResourceAsStream(String string)和getResource(String string)的問題。
1.項(xiàng)目結(jié)構(gòu)
解釋一下,主要有兩個(gè)配置文件,a.properties和b.properties,a.properties方法java的代碼里,b.properties放在resources的配置目錄中。
編譯之后,classpath的路徑為:target/classes,斜線"/"指的也是這個(gè)路徑,所有,如果有斜線就會(huì)去這個(gè)路徑下面去找,如果沒有斜線,就會(huì)去那個(gè)類的當(dāng)前坐在路徑去找。
2.例子
public class TestPath { public static void main(String[] args) { TestPath t = new TestPath(); //在當(dāng)前TestPath類所在的包查詢 InputStream a = t.getClass().getResourceAsStream("a.properties"); //在classpath路徑下進(jìn)行查詢 InputStream b = t.getClass().getResourceAsStream("/b.properties"); //在當(dāng)前TestPath類所在的包查詢 URL url_a = t.getClass().getResource("a.properties"); //在classpath路徑下進(jìn)行查詢 URL url_b = t.getClass().getResource("/b.properties"); System.out.println(); } }
以上,兩個(gè)方法都可以用來定位文件,區(qū)別有兩個(gè):
- 有沒有斜線,沒有斜線的話在類方法的所在package中查詢,如果有斜線,就去classpath下面查詢
- 返回值,getResourceAsStream()返回的是InputStream,可以直接讀取。getResource()返回的是URL對(duì)象,方便獲取文件的path路徑。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot自定義加載yml實(shí)現(xiàn)方式,附源碼解讀
這篇文章主要介紹了SpringBoot自定義加載yml實(shí)現(xiàn)方式附源碼解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03Java實(shí)現(xiàn)讀取及生成Excel文件的方法
這篇文章主要介紹了Java實(shí)現(xiàn)讀取及生成Excel文件的方法,結(jié)合實(shí)例形式分析了java通過引入第三方j(luò)ar包poi-3.0.1-FINAL-20070705.jar實(shí)現(xiàn)針對(duì)Excel文件的讀取及生成功能,需要的朋友可以參考下2017-12-12SpringBoot后端進(jìn)行數(shù)據(jù)校驗(yàn)JSR303的使用詳解
這篇文章主要介紹了SpringBoot后端進(jìn)行數(shù)據(jù)校驗(yàn)JSR303的使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Java 實(shí)戰(zhàn)項(xiàng)目錘煉之仿天貓網(wǎng)上商城的實(shí)現(xiàn)流程
讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+jsp+servlet+mysql+ajax實(shí)現(xiàn)一個(gè)仿天貓網(wǎng)上商城項(xiàng)目,大家可以在過程中查缺補(bǔ)漏,提升水平2021-11-11HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析
這篇文章主要介紹了HashMap底層數(shù)據(jù)結(jié)構(gòu)詳細(xì)解析,HashMap作為開發(fā)中常用的數(shù)據(jù)結(jié)構(gòu),也是面試中經(jīng)常被問的知識(shí)點(diǎn),因此作為開發(fā)者應(yīng)該盡可能多的理解其底層的數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-11-11JavaWeb實(shí)現(xiàn)文件上傳下載功能實(shí)例解析
這篇文章主要為大家詳細(xì)介紹了JavaWeb中的文件上傳和下載功能的實(shí)現(xiàn),在Web應(yīng)用系統(tǒng)開發(fā)中,文件上傳和下載功能是非常常用的功能,需要的朋友可以參考下2015-08-08