加载资源文件:首先,要找到资源文件;
由此引出一个问题,资源文件放在哪里。
classpath
常见的resource文件有:.xml
,.properties
,.txt
文件等。
获取资源文件的方法
URL getResource(String name)
Inputstream getResourceAsStream ()
- 通过本类的
class
类的getResource
方法
path
不以'/'
开头时,默认是从此类所在的包下取资源;
path
以'/'
开头时,则是从ClassPath
根路径下获取; - 通过本类的
ClassLoader
的getResource
方法 \
path
不能以’/’开头,path
是从ClassPath
根下获取;
所以可以认为:类名.class.getResource("/") == 类名.class.getClassLoader().getResource("")
构建Maven
项目的时候,如果没有进行特殊的配置,Maven
会按照标准的目录结构查找和处理各种类型文件。
src/main/java
和src/test/java
这两个目录中的所有*.java
文件会分别在compile
和test-compile
阶段被编译,编译结果分别放到了target/classes
和targe/test-classes
目录中,但是这两个目录中的其他文件都会被忽略掉。
解决方案:在pom.xml
中加入如下标签
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<!--.properties、.xml的文件会和编译后的class文件放在一起-->
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
</resources>
</build>
【参考链接】