`

Java中获取classpath路径下的资源文件

阅读更多

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对象的这两个方法就可以了。

       结论: 调用如下代码得到正解。

this.getClass.getResourceAsStream(String name);
 
分享到:
评论

相关推荐

    加载文件资源的三种方式

    加载文件资源的三种方式 ~1.从classpath根目录下加载指定名称的文件 2.从classpath根目录下加载指定名称的文件 3. 从classpath根目录下加载指定名称的文件 4. 获取当前文件的绝对路径

    resource-utils:Java项目的实用程序,用于获取或准备resourcelibdll ..文件,并适应普通的类,可运行的jar,Web容器等

    从classPath获取文件系统中的绝对路径 将资源从类路径复制到文件系统 UnicodeInputStream 一个适用于unicode文件的InputStream包装器。 提供此工具是因为某些Unicode文件具有BOM表头,但是java base io读取BOM作为...

    JAVA面试题最全集

    9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中...

    MyBatis3.2.3帮助文档(中文版).zip

    从 XML 文件中构建 SqlSessionFactory 的实例非常简单,建议使用类路径下的资源文件进行配置。但是也可以使用任意的输入流(InputStream)实例,包括字符串形式的文件路径或者 file:// 的 URL 形式的文件路径来配置。...

    day020-继承加强和设计模式代码和笔记.rar

    它负责将 用户类路径(java -classpath或-Djava.class.path变量所指的目录, 即当前类所在路径及其引用的第三方类库的路径,如第四节中的问题6所述)下的类库 加载到内存中。 开发者可以直接使用系统...

    Android插件框架Android-Plugin-Framework.zip

    2、支持在插件中通过R文件使用宿主程序中的资源,暂不支持插件资源文件中直接使用宿主程序中的资源。但是支持间接使用。 例如在上述“已支持的功能”6中描述的,实际就是间接使用。 后续需要解决的问题: ...

    spring源代码

    通过虚拟目录获取文件资源 VirtualFile testFile = home.getChild("test.txt"); ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver....

    新版Android开发教程.rar

    � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的有限子集,尚不承诺遵守 Java 任何 Java 规范 , 可能会造 成J ava 阵营的进一步分裂。 � 现有应用完善度不太够,需要的开发工作量较大。--------------------...

    ssh(structs,spring,hibernate)框架中的上传下载

     其中第16行通过类路径的映射方式,将sshfile.model类包目录下的所有领域对象的映射文件装载进来,在本文的例子里,它将装载进Tfile.hbm.xml映射文件。如果有多个映射文件需要声明,使用类路径映射方式显然比直接...

    Spring中文帮助文档

    4.7.2. Application context构造器中资源路径的通配符 4.7.3. FileSystemResource 说明 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到...

    Spring-Reference_zh_CN(Spring中文参考手册)

    4.7.2. Application context构造器中资源路径的通配符 4.7.2.1. Ant风格的pattern 4.7.2.2. classpath*: 前缀 4.7.2.3. 其他关于通配符的说明 4.7.3. FileSystemResource 提示 5. 校验,数据绑定,BeanWrapper,与...

    Spring API

    4.7.2. Application context构造器中资源路径的通配符 4.7.3. FileSystemResource 说明 5. 校验,数据绑定,BeanWrapper,与属性编辑器 5.1. 简介 5.2. 使用Spring的Validator接口进行校验 5.3. 从错误代码到...

    Sosoo 1.0网络爬虫程序.doc

    设置要访问的url列表【allowedURLs】:这是一个Vector类型的变量,用户可以把这些url放在配置文件中,用户可以在运行时提供这个变量。 robby.setAllowedURLs(allowed); 定制url检查规则【URLCheck】:用户除了...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

     删除环境变量中的PATHT CLASSPATH中包含Oracle的值。  删除“开始”/“程序”中所有Oracle的组和图标。  删除所有与Oracle相关的目录,包括: C:\Program file\Oracle目录。 ORACLE_BASE目录。 C:\Documents ...

Global site tag (gtag.js) - Google Analytics