在java项目中,如何获取src根目录下的属性文件/资源文件呢?
有如下三种方式:
方式一:
InputStream in = Test.class
.getResourceAsStream("/env.properties");
URL url = Test.class.getResource("/env.properties") ;
说明:env.properties文件在src的根目录下,文件名前有斜杠
方式二:
InputStream in = Test.class.getClassLoader()
.getResourceAsStream("env.properties");
URL url = Test.class.getClassLoader().getResource("env.properties") ;
方式三:
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("ExcelModeMappingl.xml");
示例:
/***
*
* @param filePath
* @return
* @throws IOException
*/
public static Properties getProperties(String filePath) throws IOException {
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream(filePath);
Properties prop = new Properties();
try {
prop.load(in);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (in != null) {
in.close();
}
}
return prop;
}
测试1:
@Test
public void test_GenericReadPropsUtil() throws IOException{
Properties pro=GenericReadPropsUtil.getProperties("test_switch.properties");
System.out.println(pro.get("name"));
}
说明:
test_switch.properties的位置与com同级目录,即test_switch.properties在src根目录下。
测试2:
@Test
public void test_GenericReadPropsUtil() throws IOException{
Properties pro=GenericReadPropsUtil.getProperties("com/wh/test_switch.properties");
System.out.println(pro.get("endpoint.isSelfCheck"));
}
说明:
test_switch.properties的位置:com/wh/test_switch.properties