在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");
這樣我們就可以直接拿到路徑,調(diào)用 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); //拿到資源