网上找了些资料,碰到一些坑
坑1.一般的做法都是InputStream in = getClass().getResourceAsStream("资源Name");
这里的getClass省略了this,但是this不能用在static代码块中,因为static是类的属性,而this是指向一个具体的对象
坑2: Object.class.getClassLoader().getResource("jdbc.properties")
Object.class.getResourceAsStream("/jdbc.properties")
如果是getClassLoader,那么文件路径就是 "jdbc.properties"
如果直接getResourceAsStream,那么文件路径要加 "/",就变成了 "/jdbc.properties"
测试通过的源代码如下:
读取src目录下的properties文件
package 读取properties文件的内容;
import java.util.Properties;
import java.io.InputStream;
import java.io.IOException;
public final class Test {
private static String param1;
static {
Properties prop = new Properties();
InputStream in = Object.class.getResourceAsStream("/jdbc.properties");
try {
prop.load(in);
param1 = prop.getProperty("driver").trim();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String [] args){
System.out.println(param1);
}
}
propertie配置文件
driver=com.mysql.jdbc.Driver