如何获得类路径下的文件?

本篇文章就简单的说下4种方式:

关于获得到类路径文件的办法,不废话了。

====================================================================

1.InputStream url = Tester.class.getClassLoader().getResourceAsStream("path.properties");

经过本人实践分析,通过某个类的类加载器,可以获得指定文件或路径的字节流。

1.1其中path.properties通常为Web-inf文件夹下classes文件夹下的一个资源文件。

1.2也可以是getResourceAsStream("com/a/b/c/path.properties");

也就是classes文件夹下,com包下的a包b包c包下的path.properties,带路径也可以。

 

====================================================================

2.InputStream url = Tester.class.getResourceAsStream("/businContext.xml");

方式二,与方式一类似,都是最终得到一个流。区别在于使用这种方式时,路径必须以'/'开始,意思是从类路径的根位置,去找某个文件或资源。

====================================================================

3.String url = Tester.class.getResource("/services.list").getFile();

方式三,得到一个资源的绝对路径,所有非ClassLoader的方式,都是要指定下 '/'根位置。

====================================================================

4.String url = Tester.class.getClassLoader().getResource("build.xml").getFile();

方式四,获得资源的绝对路径,比如:F:/rxt_workspace/zftWeb/WebRoot/WEB-INF/classes/build.xml

 

 

总结:

1.用ClassLoader获取资源位置或流对象时,就不要写'/'路径

2.用class.getResource();获取资源位置或流对象时,必须写 '/' ,且必须是斜杠,反斜杠不行。

 

 

核心重点是:什么是类路径,通常为WebRoot--Web-inf--classes文件夹的路径,即为类路径。

但这不是绝对的,其实可以是很多路径,多少取决于你设置了多少类路径。比如用Axis2-WebService组建发布WS服务时,会产生一个名为POJO的目录,该目录下存放了所有WS对象.class文件。那么该路径也是一个类路径。

具体配置在,如图:

工程--build path--Source添加源文件夹, 然后设置OutPut folder路径

意思为,一个源文件夹将编译后的.class 文件生成到OutPut folder路径中,OutPut folder就是你所指定的类路径中。

所以,上面的4种方式,都是从类路径下找资源,搞清楚这一点,以后拿任何文件,都不在话下!

多交流多分享~有不对的地方,还请指明!

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值