Java獲取文件的路徑及常見(jiàn)問(wèn)題解決方案
在java中讀取讀取文件,經(jīng)常因?yàn)槁窂降膯?wèn)題找不到,此文用于記錄如何定位文件的簡(jiǎn)單方法。
本基于springboot做的測(cè)試,主要是構(gòu)建工程方便,所用的方法都是JDK中的方法,主要測(cè)試有”/“和沒(méi)有''的問(wèn)題,以及getResourceAsStream(String string)和getResource(String string)的問(wèn)題。
1.項(xiàng)目結(jié)構(gòu)
解釋一下,主要有兩個(gè)配置文件,a.properties和b.properties,a.properties方法java的代碼里,b.properties放在resources的配置目錄中。
編譯之后,classpath的路徑為:target/classes,斜線'/'指的也是這個(gè)路徑,所有,如果有斜線就會(huì)去這個(gè)路徑下面去找,如果沒(méi)有斜線,就會(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è)方法都可以用來(lái)定位文件,區(qū)別有兩個(gè):
有沒(méi)有斜線,沒(méi)有斜線的話在類方法的所在package中查詢,如果有斜線,就去classpath下面查詢 返回值,getResourceAsStream()返回的是InputStream,可以直接讀取。getResource()返回的是URL對(duì)象,方便獲取文件的path路徑。以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. IDEA EasyCode 一鍵幫你生成所需代碼2. Ajax引擎 ajax請(qǐng)求步驟詳細(xì)代碼3. Java構(gòu)建JDBC應(yīng)用程序的實(shí)例操作4. Spring應(yīng)用拋出NoUniqueBeanDefinitionException異常的解決方案5. ThinkPHP5 通過(guò)ajax插入圖片并實(shí)時(shí)顯示(完整代碼)6. javascript設(shè)計(jì)模式 ? 建造者模式原理與應(yīng)用實(shí)例分析7. 一篇文章帶你了解JavaScript-對(duì)象8. Python使用oslo.vmware管理ESXI虛擬機(jī)的示例參考9. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟10. Express 框架中使用 EJS 模板引擎并結(jié)合 silly-datetime 庫(kù)進(jìn)行日期格式化的實(shí)現(xiàn)方法
