一:如何加载语法 可参考
https://www.cnblogs.com/zhuyeshen/p/11435544.html
二:遇到的坑
a.编译器里可以读取到,但是打包后不行
写法:
Properties properties = new Properties();
try {
File file=new File("src/main/resources/druid.properties");
InputStream in = new FileInputStream(file);
properties.load(in);
把文件路径放到系统的某个路径,路径写 绝对路径;
缺点: 换个环境,不仅要修改 文件配置,还要 为文件找个地方,项目中文件路径还要改,麻烦
b.无法读取,可能是项目运行时,资源文件没有预编译过来(就是你运行的时候,其实运行的是 class 后缀的文件)
解决办法:
在pom文件中配置下资源,记得重编译下再运行(注意路径,最好是到 Java 就够了),在路径上也遇到坑了,试了好几次,这个决定了你的资源文件打包后的位置问题
<resources>
<resource>
<directory>${project.basedir}/src/main/java</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
c.资源文件打包进去了,但还是读取不到
解决:下面两种 加载写法都试下
类名.class.getResourceAsStream("*********")
或
类名.class.getClassLoader().getResourceAsStream("*********")
注意:以上是针对打包后运行加载的,自己在编译器里跑的时候可以用 File去读取
补充:1.网上也有些说 重新 build下就好了,我自己这边是不行 2.如果你是 web项目,直接用开头链接的语法就行了