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,斜線(xiàn)'/'指的也是這個(gè)路徑,所有,如果有斜線(xiàn)就會(huì)去這個(gè)路徑下面去找,如果沒(méi)有斜線(xiàn),就會(huì)去那個(gè)類(lèi)的當(dāng)前坐在路徑去找。
2.例子
public class TestPath { public static void main(String[] args) { TestPath t = new TestPath(); //在當(dāng)前TestPath類(lèi)所在的包查詢(xún) InputStream a = t.getClass().getResourceAsStream('a.properties'); //在classpath路徑下進(jìn)行查詢(xún) InputStream b = t.getClass().getResourceAsStream('/b.properties'); //在當(dāng)前TestPath類(lèi)所在的包查詢(xún) URL url_a = t.getClass().getResource('a.properties'); //在classpath路徑下進(jìn)行查詢(xún) URL url_b = t.getClass().getResource('/b.properties'); System.out.println(); }}
以上,兩個(gè)方法都可以用來(lái)定位文件,區(qū)別有兩個(gè):
有沒(méi)有斜線(xiàn),沒(méi)有斜線(xiàn)的話(huà)在類(lèi)方法的所在package中查詢(xún),如果有斜線(xiàn),就去classpath下面查詢(xún) 返回值,getResourceAsStream()返回的是InputStream,可以直接讀取。getResource()返回的是URL對(duì)象,方便獲取文件的path路徑。以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. WMLScript的語(yǔ)法基礎(chǔ)2. html小技巧之td,div標(biāo)簽里內(nèi)容不換行3. XML入門(mén)的常見(jiàn)問(wèn)題(四)4. xml中的空格之完全解說(shuō)5. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享6. msxml3.dll 錯(cuò)誤 800c0019 系統(tǒng)錯(cuò)誤:-2146697191解決方法7. 無(wú)線(xiàn)標(biāo)記語(yǔ)言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁(yè)8. 解決ASP中http狀態(tài)跳轉(zhuǎn)返回錯(cuò)誤頁(yè)的問(wèn)題9. ASP中if語(yǔ)句、select 、while循環(huán)的使用方法10. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問(wèn)題……
