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目錄找的,所以前面無需再加/。