我看了资料 Properties 读取配置文件都只能读取src下的文件,这个确实是可以实现,但是项目的配置文件是放在 web/WEB-INF/configs/jdbc.properties 文件夹下的,这个应该如何读取呢?
Properties pro = new Properties();
ClassLoader cl = Thread.currentThread().getContextClassLoader();
InputStream stream = cl.getResourceAsStream("com/pyllot/jdbc.properties");// 这个地方可以读取src下的配置文件,但是我现在的配置文件位置是在web/WEB-INF/configs下.如果stream = cl.getResourceAsStream("web/WEB-INF/configs/jdbc.properties")这样写,那么就会报空指针,应该是找不到文件的问题. ....
pro.load(stream);
高手指教 QQ785035779....
你是web工程 要能得到request对象就好了。
String path=servletContext.getRealPath("/"); 得到的就是 编译后web文件夹的路径
path+"/WEB-INF/configs/jdbc.properties" 就可以了。
还是建议用上面的方法
2 上边cl.getResourceAsStream("") 我试了一下只能得到classes下面的文件
也就是\WEB-INF\classes\下的文件
向上去 /WEB-INF/就不行了。
3 可以通过cl得到一个file 你对file进行操作区找 那个配置文件。。
new File(cl.getResource("").getPath()) //这个file就是classes文件夹了
/WEB-INF/
--/configs/jdbc.properties
--/classes/这里就是src的路径了
String path=servletContext.getRealPath("/"); 得到的就是 编译后web文件夹的路径
path+"/WEB-INF/configs/jdbc.properties" 就可以了。
还是建议用上面的方法
2 上边cl.getResourceAsStream("") 我试了一下只能得到classes下面的文件
也就是\WEB-INF\classes\下的文件
向上去 /WEB-INF/就不行了。
3 可以通过cl得到一个file 你对file进行操作区找 那个配置文件。。
new File(cl.getResource("").getPath()) //这个file就是classes文件夹了
/WEB-INF/
--/configs/jdbc.properties
--/classes/这里就是src的路径了
温馨提示:答案为网友推荐,仅供参考
第1个回答 2010-11-26
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("../lib/config.properties");
.getResourceAsStream("../lib/config.properties");
第2个回答 2010-11-24
读取配置文件最好用java.util.ResourceBundle类。
配置文件xxxx.properties文件要放在classes的编译路径下面。
比如xxxx.properties文件放在了classes目录下,读取时这样调用
// 读取配置文件
ResourceBundle resourcesTable = ResourceBundle.getBundle(“xxxx”);
// 取得strKey对应的value值
String strValue = resourcesTable.getString("strKey");
配置文件xxxx.properties文件要放在classes的编译路径下面。
比如xxxx.properties文件放在了classes目录下,读取时这样调用
// 读取配置文件
ResourceBundle resourcesTable = ResourceBundle.getBundle(“xxxx”);
// 取得strKey对应的value值
String strValue = resourcesTable.getString("strKey");
参考资料: