jar包中资源文件的读取 博客分类: java Jar
JAVA里面对于类进行调用配置资源的文件数据,以this.getClass().getResourceAsStream()来读取比较合适。
路径采用相对路径直接可以从工程的path路径去找。
主要问题是如果类中采用的是静态块的话,则该this.getClass()报错,因为读静态块时,可能该对象并为构造,所以用this来指向当前对象不行。
ClassLoader提供了两个方法用于从装载的类路径中取得资源:
public URL getResource(String name);
public InputStream getResourceAsStream(String name);
这里name是资源的类路径,它是相对与“/”根路径下的位置。getResource得到的是一个URL对象来定位资源,而getResourceAsStream取得该资源输入流的引用保证程序可以从正确的位置抽取数据。
然
而,程序中调用的通常并不是ClassLoader的这两个方法,而是Class的getResource和getResourceAsStream方
法,因为Class对象可以从你的类得到(如YourClass.class或YourClass.getClass()),而ClassLoader则
需要再调用一次YourClass.getClassLoader()方法,但根据JDK文档的说法,Class对象的这两个方法其实是“委托”
(delegate)给装载它的ClassLoader来做的,所以只需要使用Class对象的这两个方法就可以了。
举例说明:
mypackage.Hello.class.getResourceAsStream("/config/config.ini");
推荐阅读
-
jar包中资源文件的读取 博客分类: java Jar
-
Maven本地工程jar包的引用 博客分类: 框架 mavenjar本地
-
(转)关于两个jar包中存在包名和类名都完全相同的问题 博客分类: Java javajareclipse
-
基于SpringMVC的Java Web学习笔记01 - 下载jar 博客分类: 开发技术 webjar
-
jar文件的运行方式 博客分类: Java jar运行jre
-
win7下不能双击打开Jar包的解决方案 博客分类: JavaSE Java编程Windows7win7Jar
-
SpringBoot 读取 jar包下resource中整个文件夹下内容,生成临时目录 博客分类: java springbootjarresources
-
jar包生成笔记 博客分类: Java javajareclipse
-
maven3去掉重复的依赖jar包 博客分类: Maven3 maven3去掉重复依赖jar包
-
使用maven编译,且使用lib下的Jar包 博客分类: maven