Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2509474
  • 博文数量: 319
  • 博客积分: 9650
  • 博客等级: 中将
  • 技术积分: 3881
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 21:05
文章分类

全部博文(319)

文章存档

2017年(5)

2016年(10)

2015年(3)

2014年(3)

2013年(10)

2012年(26)

2011年(67)

2010年(186)

2009年(9)

分类: Java

2010-05-10 11:48:37

我们知道编译后的Java类文件可以打包成一个jar文件随处运行。但是当我们需要使用一些资源如:一幅图像,一段音频时,就需要在jar包外带有一个资源文件夹,我们总要保证jar包和资源文件夹一起分发否则程序就不能正常运行,这给我们的发布带来一些小困难。因为我们总希望我们只分发一个jar包就可以正常的运行程序。这样我们就需要把资源文件一同打包如jar包内。那么我们要如何读取这些文件呢?
Java为我们提供了两个函数URL Class.getResource()和InputStream Class.getResourceAsStream()可以完成这一功能。


假设我们有a.jar和a.jar/a.txt和a.jar/b/b.txt和a.jar/b/c.class这样一个jar包。
在c.class中有这样一句调用,从相对路径获得a.jar/b/b.txt的URI目录。


    this.getClass().getResource("b.txt");


我们也可以使用绝对路径来获得目录


    this.getClass().getResource("/b/b.txt");


getResourceAsStream()的用法与getResource()相同,只不过得到的是一个输入流。


注意:使用getResource()方法获得URI的文件不能用可写方法打开,否则会出现调试时正常,打包后jar无法正常运行的情况。

阅读(3912) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~