最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Maven項目讀取resources文件路徑問題解決方案

 更新時間:2020年09月29日 15:40:08   作者:賈樹丙  
這篇文章主要介紹了Maven項目讀取resources文件路徑問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

讀取resources下文件的方法

網(wǎng)上有問答如下:

問:

  new FileInputStream("src/main/resources/all.properties")
  new FileInputStream("./src/main/resources/all.properties")

  上面兩個無法讀取maven下資源文件目錄下的文件嘛,總是提示找不到該路徑,這么寫錯了嘛,但是我的其他maven可以讀取

答:
  要取編譯后的路徑,而不是你看到的src/main/resources的路徑。如下:

  URL url = MyTest.class.getClassLoader().getResource("conf.properties");
  File file = new File(url.getFile());

  或者

  InputStream in = MyTest.class.getClassLoader().getResourceAsStream("conf.properties");

第二種方法,也可以改成

  InputStream in = getClass().getClassLoader().getResourceAsStream("conf.properties");

同事的一種的寫法是:

  InputStream in = getClass().getResourceAsStream("conf.properties");

  然后怎么也獲取不到,最后才發(fā)現(xiàn),只要添加了.getClassLoader()就可以了

getClassLoader() 的作用

  •   getClass():取得當前對象所屬的Class對象
  •   getClassLoader():取得該Class對象的類裝載器
  •   類裝載器負責從Java字符文件將字符流讀入內(nèi)存,并構(gòu)造Class類對象,在你說的問題那里,通過它可以得到一個文件的輸入

Class.getClassLoader()的一個小陷阱,空指針異常:

  昨天我的code總在Integer.class.getClassLoader().getResource("*********");這一句拋出空指針異常,定位為getClassLoader()返回null,查了一下jdk的文檔,原來這里還有一個陷阱:

  這里jdk告訴我們:如果一個類是通過bootstrap 載入的,那我們通過這個類去獲得classloader的話,有些jdk的實現(xiàn)是會返回一個null的,比如說我用 new Object().getClass().getClassLoader()的話,會返回一個null,這樣的話上面的代碼就會出現(xiàn)NullPointer異常.所以保險起見我們最好還是使用我們自己寫的類來獲取classloader("this.getClass().getClassLoader()“),這樣一來就不會有問題。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解springboot中的jar包部署步驟

    詳解springboot中的jar包部署步驟

    這篇文章主要介紹了springboot中的jar包部署步驟及l(fā)inux中部署項目常用指令,需要的朋友可以參考下
    2018-07-07
  • 解決javac不是內(nèi)部或外部命令,也不是可運行程序的報錯問題

    解決javac不是內(nèi)部或外部命令,也不是可運行程序的報錯問題

    在學著使用Java的命令行來編譯java文件的時候,遇到了這個問題,本文主要介紹了解決javac不是內(nèi)部或外部命令,也不是可運行程序的報錯問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Intellij IDEA中一次性折疊所有Java代碼的快捷鍵設置

    Intellij IDEA中一次性折疊所有Java代碼的快捷鍵設置

    這篇文章主要介紹了Intellij IDEA中一次性折疊所有Java代碼的快捷鍵設置,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • mybatis?一對多映射?column屬性的注意事項說明

    mybatis?一對多映射?column屬性的注意事項說明

    這篇文章主要介紹了mybatis?一對多映射?column屬性的注意事項說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教。
    2022-01-01
  • 深入淺析java中finally的用法

    深入淺析java中finally的用法

    finally自己由關(guān)鍵字finally和后面的finally塊組成。這篇文章重點給大家介紹java中finally的用法,需要的朋友參考下吧
    2018-06-06
  • Java Swing 只關(guān)閉當前窗體的實現(xiàn)

    Java Swing 只關(guān)閉當前窗體的實現(xiàn)

    這篇文章主要介紹了Java Swing 只關(guān)閉當前窗體的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 教你Spring如何使用三級緩存解決循環(huán)依賴

    教你Spring如何使用三級緩存解決循環(huán)依賴

    這篇文章主要介紹了Spring使用三級緩存解決循環(huán)依賴的過程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • java獲取properties屬性文件示例

    java獲取properties屬性文件示例

    Properties類表示了一個持久的屬性集。Properties可保存在流中或從流中加載。屬性列表中每個鍵及其對應值都是一個字符串。本文使用java讀取這些屬性,看下面詳細介紹吧
    2014-01-01
  • 淺談Java8新特性Predicate接口

    淺談Java8新特性Predicate接口

    這篇文章主要介紹了淺談Java8新特性Predicate接口,文中有非常詳細的代碼示例,對正在學習java的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • java httpclient設置超時時間和代理的方法

    java httpclient設置超時時間和代理的方法

    這篇文章主要介紹了java httpclient設置超時時間和代理的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02

最新評論

定陶县| 兴海县| 南溪县| SHOW| 甘孜县| 西畴县| 额尔古纳市| 涪陵区| 荣成市| 古蔺县| 余姚市| 远安县| 石屏县| 福清市| 岳普湖县| 蒙城县| 南澳县| 武胜县| 观塘区| 二连浩特市| 长岭县| 绥芬河市| 永德县| 八宿县| 泸定县| 葫芦岛市| 寿宁县| 杭锦旗| 乌兰察布市| 横山县| 蕲春县| 上高县| 天全县| 武邑县| 台南市| 汉阴县| 阿拉善左旗| 尉犁县| 泸定县| 巴里| 平江县|