1. 程式人生 > >讀取maven工程resource目錄下的資原始檔

讀取maven工程resource目錄下的資原始檔

在maven工程中,我們會將配置檔案放到src/main/resources下面,我們需要確認resource 下的檔案編譯之後存放的位置。它編譯的路徑直接位於classes下面,這個路徑其實就是classPath的路徑,所以,在resources 根目錄下的配置檔案其實就是 classPath的路徑。

public static void main(String[] args) throws ParserConfigurationException, Exception{  
        ClassLoader classLoader = TestDom.class.getClassLoader
(); URL resource = classLoader.getResource("test.xml"); String path = resource.getPath(); System.out.println(path); InputStream resourceAsStream = classLoader.getResourceAsStream("test.xml");

這樣我們就可以直接拿到路徑,呼叫 getResourceAsStream 方法 可以直接拿到目標檔案的輸入流。

幾種讀取配置檔案的方式比較(程式碼在src/main/java目錄下,資原始檔在src/main/resources/目錄下):

InputStream is = this.getClass().getResourceAsStream(test.xml);  //拿不到資源
InputStream is = this.getClass().getResourceAsStream("/" +test.xml); // 拿到資源
InputStream is = this.getClass().getClassLoader().getResourceAsStream(test.xml); //拿到資源

第一種方式會從當前類的目錄下去找,這個檔案如果不和該類在一個目錄下,就找不到。 第二種方式會從編譯後的整個classes目錄下去找,maven也會把資原始檔打包進classes資料夾,所以可以找到。 第三種方式中ClassLoader就是從整個classes目錄找的,所以前面無需再加/。