版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
常常因为读取资源带不带 / 搞的一脸懵逼,今天总结以下,几种读取方式的不同总结
项目结构图
第一种方式
路径的读取是安装当前操作类的相对位置进行读取的
File file = new File(ClassAnnotationReader.class.getResource("/").toURI());
结果:/Users/wangz351/Documents/project/myspring/target/spring-1.0/WEB-INF/classes
File file = new File(ClassAnnotationReader.class.getResource("../").toURI());
结果
/Users/wangz351/Documents/project/myspring/target/spring-1.0/WEB-INF/classes/com/ljy/spring
File file = new File(ClassAnnotationReader.class.getResource("./").toURI());
结果
file:/Users/wangz351/Documents/project/myspring/target/spring-1.0/WEB-INF/classes/com/ljy/spring/web/
第二种方式
注意这里不能写成 /config/db.properties
public class demo {
public static void main(String[] args) {
InputStream is = ClassReadResourceDemo.class.
getClassLoader().getResourceAsStream("config/db.properties");
Properties prop = new Properties();
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
第三种方式
这个带 /
is = ClassReadResourceDemo.class.getResourceAsStream("/config/config.properties");
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
第四种方式
is = ClassReadResourceDemo.class.getClassLoader().getResourceAsStream("config/config.properties");
try {
prop.load(is);
System.out.println(prop.getProperty("key"));
is.close();
} catch (IOException e) {
e.printStackTrace();
}
第五种方式
Reader reader = Resources.getResourceAsReader(config/config.properties);