1. 程式人生 > 程式設計 >Java獲取檔案的路徑及常見問題解決方案

Java獲取檔案的路徑及常見問題解決方案

在java中讀取讀取檔案,經常因為路徑的問題找不到,此文用於記錄如何定位檔案的簡單方法。

本基於springboot做的測試,主要是構建工程方便,所用的方法都是JDK中的方法,主要測試有”/“和沒有""的問題,以及getResourceAsStream(String string)和getResource(String string)的問題。

1.專案結構

Java獲取檔案的路徑及常見問題解決方案

解釋一下,主要有兩個配置檔案,a.properties和b.properties,a.properties方法java的程式碼裡,b.properties放在resources的配置目錄中。

編譯之後,classpath的路徑為:target/classes,斜線"/"指的也是這個路徑,所有,如果有斜線就會去這個路徑下面去找,如果沒有斜線,就會去那個類的當前坐在路徑去找。

2.例子

public class TestPath {
  public static void main(String[] args) {
    TestPath t = new TestPath();
    //在當前TestPath類所在的包查詢
    InputStream a = t.getClass().getResourceAsStream("a.properties");
    //在classpath路徑下進行查詢
    InputStream b = t.getClass().getResourceAsStream("/b.properties");

    //在當前TestPath類所在的包查詢
    URL url_a = t.getClass().getResource("a.properties");
    //在classpath路徑下進行查詢
    URL url_b = t.getClass().getResource("/b.properties");

    System.out.println();
  }
}

以上,兩個方法都可以用來定位檔案,區別有兩個:

  • 有沒有斜線,沒有斜線的話在類方法的所在package中查詢,如果有斜線,就去classpath下面查詢
  • 返回值,getResourceAsStream()返回的是InputStream,可以直接讀取。getResource()返回的是URL物件,方便獲取檔案的path路徑。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。