java类加载加载资源的方式以及加载资源失败问题

加载资源的方式

 1  正常的文件读取File

 2  类加载器

     重点说类加载器

    

如上图的包资源com.lsl.mybatis.io.resources.propeties

  2.1   Clas.clss.getResourceAsStream(String path);  

     提示:所有的类加载器对应的getResourceAsStream(),默认都是从当前类下查找

      说明: path参数:直接写文件名称,默认是从当前类路径下获取

                 '/' 首位已 '/' 开始,需要从classpath根目录下加载

public static void main(String[] agrs){
        InputStream is = ResolverUitls.class.getResourceAsStream("resources.properties");
        Properties p = new Properties();
        try{
            p.load(is);
            String username = p.getProperty("username");
            System.out.println("" +  username);
        } catch (IOException io){

        }
    }

     上面的结果:正常是获取到当前类路径下文件,并输出结果

     异常: 抛出空指针,并没有加载到该资源文件,后追踪后发现,是编译的该包目录下不存在该文件。

     

   所以需要解决该目录下该文件不存在的问题,之后在执行就ok

3. 获取web项目下的指定资源

    1)、 ServletContext. getResourceAsStream(String path):默认从WebAPP根目录(即:要发布在服务器下的项目的根目录(与src同级的web文件夹下))下取资源,path是否以’/'开头无所谓;

           例: A)、在web项目的根目录下有myfile.xml文件,则应该使用:

getServleContext().getResourceAsStream("myfile.xml");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值