网上找了些资料,碰到一些坑
坑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