Java獲取文件的路徑及常見問題解決方案
在java中讀取讀取文件,經(jīng)常因?yàn)槁窂降膯栴}找不到,此文用于記錄如何定位文件的簡單方法。
本基于springboot做的測試,主要是構(gòu)建工程方便,所用的方法都是JDK中的方法,主要測試有”/“和沒有''的問題,以及getResourceAsStream(String string)和getResource(String string)的問題。
1.項(xiàng)目結(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路徑下進(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(); }}
以上,兩個方法都可以用來定位文件,區(qū)別有兩個:
有沒有斜線,沒有斜線的話在類方法的所在package中查詢,如果有斜線,就去classpath下面查詢 返回值,getResourceAsStream()返回的是InputStream,可以直接讀取。getResource()返回的是URL對象,方便獲取文件的path路徑。以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 改變 Python 中線程執(zhí)行順序的方法2. Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))3. 詳解Python模塊化編程與裝飾器4. Python下使用Trackbar實(shí)現(xiàn)繪圖板5. html小技巧之td,div標(biāo)簽里內(nèi)容不換行6. Python通過format函數(shù)格式化顯示值7. python web框架的總結(jié)8. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式9. python使用ctypes庫調(diào)用DLL動態(tài)鏈接庫10. Python性能測試工具Locust安裝及使用
