最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
java 读取jar包中的资源文件实例程序
时间:2013-09-17 编辑:简简单单 来源:一聚教程网
1) ClassLoader是abstract的,不可能实例化对象,更加不可能通过ClassLoader调用上面两个方法。所以我们真正写代码的时候,是通过Class类中的getResource()和getResourceAsStream()方法,这两个方法会委托ClassLoader中的getResource()和getResourceAsStream()方法 。好了,现在我们重新写一段Resource代码,来看看上面那段费解的话是什么意思了:
Java代码
代码如下 | 复制代码 |
package edu.hxraid; |
(2) 我们不能用常规操作文件的方法来读取ResourceJar.jar中的资源文件res.txt,但可以通过Class类的getResourceAsStream()方法来获取 ,这种方法是如何读取jar中的资源文件的,这一点对于我们来说是透明的。我们将Resource.java改写成:
Java代码
代码如下 | 复制代码 |
package edu.hxraid; |
注意
一般我们在编写完Java程序中获取资源路径,在开发和调试期(未打包前),是没有问题的,但在打包后,由于资源(图片、配置文件等)都将打包到jar文件中,由于System中的“user.dir”属性发生了变化,会造成用绝对路径的方式无法找到jar文件中的资源文件。因为程序载入图片或文本文件时,使用以当前工作路径为基准的方式来指定文件和路径,而资源文件打在jar包中后程序无法通过绝对路径找到。因此可采用Java本身以类为基准的路径搜索方式。如下两种方式:
取得相对于包的根路径
代码如下 | 复制代码 |
String path = new File(FrameConfig.class.getResource("/").getFile()) .getAbsolutePath(); 取得相对于包路径的流 Reader reader = new InputStreamReader( FrameConfig.class.getResourceAsStream("/res/uiConfig.xml")); |
含有这种代码的程序在运行时,以类(类路径)为基准,而不依赖当前路径(System中的user.dir),
【注】:上面的路径“/res/uiConfig.xml”是相对于包的路径,如果写成“res/uiConfig.xml”,表示相对于类的路径:package/res/uiConfig.xml,这需要将图片和文本等文件的保存路径,和程序中指定的路径两者保持一致。
【注】:上面的路径“/res/uiConfig.xml”是相对于包的路径,如果写成“res/uiConfig.xml”,表示相对于类的路径:package/res/uiConfig.xml,这需要将图片和文本等文件的保存路径,和程序中指定的路径两者保持一致。
读取jar包中根Element(dom4j)
代码如下 | 复制代码 |
private static Element getRootElement(String path) { private static void closeStream(Closeable stream) { public static void main(String[] args) { |
读取jar包中根Element(jdom)
代码如下 | 复制代码 |
private static Element getRootElement(String path) { |
读取jar包中国际化资源文件
代码如下 | 复制代码 |
ResourceBundle resources = ResourceBundle.getBundle( |
读取jar包中的图片资源
代码如下 | 复制代码 |
public static Image getImage(String imageName) { public static void main(String[] args) { |
-
下一个: Java对象的赋值一些技巧介绍
相关文章
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24
- SpringBoot常用计量与bean属性校验和进制数据转换规则解析 10-24
- 工厂方法在Spring框架中的运用介绍 10-24