Class和ClassLoader都可以加载本地资源:
PropertyUtils.class.getResourceAsStream(path);
PropertyUtils.class.getClassLoader().getResourceAsStream(path);
二者的主要区别是:
1. class加载的是和当前类在同一个包下的配置文件。
2. classLoader加载的是在classpath下的配置文件(是在source code的根目录)。
常用方法:
1. 加载配置文件
public static Properties loadProperties(String path) throws IOException {
Properties props = new Properties();
try (InputStream inputStream = PropertyUtils.class.getClassLoader().getResourceAsStream(path)){
props.load(inputStream);
}
return props;
}
2. 加载图片
public static Image loadImage(String path) throws IOException {
URL url = PropertyUtils.class.getClassLoader().getResource(path);
return ImageIO.read(url);
}