java中Class.getResource用法

转载自:转载地址

关于getResource的用法文中已经说的比较详细了,但仍有一些细节的地方文中没有指出,我也是思考了一会才明白其中的道理,现在总结如下:

1.对于文中说file3.txt文件的读取方法有两种,分别如下

方法一:File file3 = new File(Test.class.getResource("file3.txt").getFile());

方法二:File file3 = new File(Test.class.getResource("/javaapplication/file3.txt").getFile());

方法三:File file3 = new File(Test.class.getClassLoader().getResource("javaapplication/file3.txt").getFile());

对于方法一:它的意思是从Test.class文件的同级目录下寻找file3.txt文件;

对于方法二:它的意思是从根目录下开始寻找,先在跟目录下找javaapplication这个文件夹,如果存在,则继续在该文件夹下寻找file3.txt文件;这里为什么从根目录下开始寻找是因为路径的开头是“/”这个符号,如果路径改为“javaapplication/file3.txt”,则表示在Test.class的同级目录下开始寻找,另外这里所谓的根目录指的是编译后的目录,比如项目下有src和bin目录,src用来存放源码,bin下用来存放编译后的class文件,则这里的根目录指的就是bin目录;

对于方法三:我觉得可以把Test.class.getClassLoader()理解为切换当前路径为根目录下,然后开始寻找javaapplication,然后在寻找file3.txt文件,所以这里javaapplication前面就不用“/”符号了;


另外对于作者说,对于file1.txt的获取只能采用下面的方法一的方法:

方法一:File file1 = new File("c:/project/src/javaapplication/file1.txt");


但我这里真正的项目中一般使用 System.getProperty("user.dir")+"\\"+"config\\config.xml"的方法去获取配置文件的,当然这个目前只使用在windows环境下,不知道如果使用在linux环境下是否适用,但很多网友不建议使用该方法,说会出现一些问题;


最后,java中还有Class.getResourceAsStream(), 也可以用于定位和获取资源文件,和Class.getResource差不多,不过返回的是一个InputStream对象。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值