A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 贾振凯 中级黑马   /  2013-4-10 23:12  /  1029 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 贾振凯 于 2013-4-16 21:39 编辑
  1. public class LoaderSourcePath {

  2. public static void main(String[] args){
  3. readPro();
  4. }

  5. public static void readPro(){
  6. //为什么通过当前线程类不可以像普通class一样访问包里面的资源???????
  7. // System.out.println(Thread.currentThread().getClass().getResource("packagesql.properties"));

  8. /*
  9. * 通过当前线程上下文类加载器可以像普通的类加载器一样访问classpath目录下的资源
  10. */
  11. System.out.println(Thread.currentThread().getContextClassLoader().getResource("zhenkai/lianxi/packagesql.properties"));
  12. }
  13. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
田磊阳 + 1

查看全部评分

3 个回复

倒序浏览
可以通过当前线程类访问包里的资源,不过资源路径前,你得加上“/”,表示从跟路径开始查找你的资源。
类加载器和普通类的访问资源的起始路径不同,可以参看张孝祥老师的高新技术视频中关于类加载器的部分,有详细的解答

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
有一种办法可以访问资源文件:
在com/itheima目录下有一个资源文件:test5.properties,通过ResourceBundle类可以像访问java类那样
得到这个资源文件。这种方式是只读的,如果感兴趣可以看下api
//注意com.itheima.test5后面没有.properties后缀
ResourceBundle res = ResourceBundle.getBundle("com.itheima.test5");
//获取绑定资源的对应key的值
String url = res.getString("url");

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果问题未解决,请继续追问,如果没有问题了,请将帖子分类 改为“已解决”,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马