java加载资源文件方式总结

在java中,加载文件资源可用如下四种方式:

   1、通过本类的class类的getResource方法

 // 同一包下
URL u0 = ClassGetResourceTest.class.getResource("c1.xml")");
System.out.println(u0.toString());
// 从根寻找资源,需要文件分隔符"/"
URL u = ClassGetResourceTest.class.getResource("/c1.xml");
System.out.println(u.toString());
// 不同包下,相对路径
URL u2 = ClassGetResourceTest.class.getResource("/com/test2/c1.xml");
System.out.println(u2.toString());

2、通过本类的ClassLoad的getResource方法

//同一包中寻找
URL u=ClassLoadGetResourceTest.class.getClassLoader().getResource("c1.xml");
System.out.println(u.toString());
//根路径开始寻找
URL u1=ClassLoadGetResourceTest.class.getClassLoader().getResource("c2.xml");
System.out.println(u1.toString());
//不同包中
URL u2=ClassLoadGetResourceTest.class.getClassLoader().getResource("com/test/c1.xml");
System.out.println(u2.toString());

3、通过ClassLoad的getSystemResource()和getSystemClassLoader().getResource()

 // 同一包下
URL u2 = ClassLoader.getSystemResource("c1.xml");
URL u3 = ClassLoader.getSystemClassLoader().getResource("c1.xml");
System.out.println(u2.toString());
System.out.println(u3.toString());
// 指定包下且不同包
URL u = ClassLoader.getSystemResource("com/test2/c1.xml");
URL u1 = ClassLoader.getSystemClassLoader().getResource(
"com/test2/c1.xml");
System.out.println(u.toString());
System.out.println(u1.toString());
// 从根路径开始
URL u4 = ClassLoader.getSystemResource("c1.xml");
URL u5 = ClassLoader.getSystemClassLoader().getResource("c1.xml");
System.out.println(u4.toString());
System.out.println(u5.toString());

4、通过Thread方式(推荐此种)

 //同一包下
URL u=Thread.currentThread().getContextClassLoader().getResource("c1.xml");
System.out.println(u.toString());
//不同包下
URL u1=Thread.currentThread().getContextClassLoader().getResource("com/test2/c1.xml");
System.out.println(u1.toString());
//根路径下
URL u2=Thread.currentThread().getContextClassLoader().getResource("c2.xml");
System.out.println(u2.toString());

总结: 通过以上四种方式比较可知,除第一种方式(通过本类的class类的getResource)在从根路径和其它包路径下加载资源时,需要加相对路径符"/"外,其它加载资源的路径方式基本是一样的。二、三、四方式在加载同包资源和根路径下资源,指定资源的路径是一样的!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值