在Java中很常见getResourceAsStream()方法,会返回一个输入流对象,一般用来加载配置文件。
在Java中有多个getResourceAsStream()方法:
- Class类有getResourceAsStream(String path)方法:
path不以"/“开头是从当前类的包下取资源,加了”/"是从src目录下取文件
InputStream in = Test.class.getResourceAsStream("dorm.properties");
Properties pro = new Properties();
try {
pro.load(in);
Set<Object> keySet = pro.keySet();
for(Object key : keySet) {
System.out.println(pro.getProperty(key.toString()));
}
} catch (IOException e) {
e.printStackTrace();
}
- ClassLoader类的getResourceAsStream(String path)
ClassLoader和Class两个类中的方法本质上都是一样的,都是调用了ClassLoader类负责。
path以"/“开头是src目录下取,不以”/"开头直接写文件名就是从该类的包下取
InputStream in = Test.class.getClassLoader().getResourceAsStream("dorm.properties");
Properties pro = new Properties();
try {
pro.load(in);
Set<Object> keySet = pro.keySet();
for(Object key : keySet) {
System.out.println(pro.getProperty(key.toString()));
}
} catch (IOException e) {
e.printStackTrace();
}
- ServletContext类中的getResourceAsStream(String path)方法
默认从WEB应用根目录下取