ClassLoader加载类的路径问题

有的时候我们需要读取文件,文件的路径若写死了,当我们上线的时候会比较麻烦,往往会经常出现找不到文件路径的问题,对于这个问题的解决方案就是用ClassLoader的类加载,来加载文件:

加载方式如下:

1:用下面的读取方式读取配置文件,Thread.currentThread().getContextClassLoader()读取的时候,默认的读取的文件的路径是项目的根目录
若该文件在项目根目录下面则直接按照这样的方式写:
private static final String CONFIG_FILE="config.properties";
InputStream inStream=Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE);
2:若配置文件在http.com.cn的包下面,则按照下面的方式读取:
private static final String CONFIG_FILE="http/com/cn/config.properties";
InputStream inStream=Thread.currentThread().getContextClassLoader().getResourceAsStream(CONFIG_FILE);
3:若用SystemConfig.class.getResourceAsStream(CONFIG_FILE)这样的方式的话,默认的文件的路径就是SystemConfig类的路径,就是完整的包路径,
也就是要使用InputStream inStream =SystemConfig.class.getResourceAsStream("/http/com/cn/config.properties")这样的绝对路径"/"开头

用到classloader的getResourceAsStream的就要写相对路径的方式写路径,若包名以"cn"开头,则应该按照以包名"cn/"写完整的路径的方式的相对路径方式,若写“类名.class.getResourceAsStream("")"这样的方式,则必须要按照绝对路径的方式写文件的路径以"/"开头

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值