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