Java中getResourceAsStream用法分析

 更新时间:2015年06月08日 16:26:12   作者:liuzx32  
这篇文章主要介绍了Java中getResourceAsStream用法,较为详细的分析了getResourceAsStream的功能及用法,需要的朋友可以参考下

本文实例讲述了Java中getResourceAsStream用法。分享给大家供大家参考。具体如下:

(一)Java中的getResourceAsStream有以下几种情况:

1. Class.getResourceAsStream(String path) :

#path 不以'/'开头时默认是从此类所在的包下取资源;
#以'/'开头则是从ClassPath根下获取,其原理是通过path构造一个绝对路径,最终还是由ClassLoader来获取资源。

2. Class.getClassLoader.getResourceAsStream(String path) :

#默认则是从ClassPath根下获取,path不能以'/'开头,最终是由ClassLoader获取资源。

3. ServletContext. getResourceAsStream(String path):

#默认从WebAPP根目录下取资源,Tomcat或Resin#[Web容器]下的path是否以'/'开头无所谓,当然这也和具体的容器实现有关。

4. Jsp下的application内置对象就是上面的ServletContext的一种实现。

(二)其中getResourceAsStream大致有以下几种用法:

第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类me.class ,同时有资源文件myfile.xml

那么,应该有如下代码:

复制代码 代码如下:
me.class.getResourceAsStream("myfile.xml");

第二:在me.class目录的子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.y.file 目录下有资源文件myfile.xml

那么,应该有如下代码:

复制代码 代码如下:
me.class.getResourceAsStream("file/myfile.xml");

第三:不在me.class目录下,也不在子目录下,例如:com.x.y 下有类me.class ,同时在 com.x.file 目录下有资源文件myfile.xml

那么,应该有如下代码:

复制代码 代码如下:
me.class.getResourceAsStream("/com/x/file/myfile.xml");

(三)总结如下,可能只是两种写法

第一:前面有 “   / ”

“ / ”代表了工程的根目录,例如工程名叫做myproject,“ / ”代表了myproject

复制代码 代码如下:
me.class.getResourceAsStream("/com/x/file/myfile.xml");

第二:前面没有 “   / ”

代表当前类的目录

复制代码 代码如下:
me.class.getResourceAsStream("myfile.xml");
me.class.getResourceAsStream("file/myfile.xml");

希望本文所述对大家的java程序设计有所帮助。

相关文章

  • Java实现简单井字棋小游戏代码实例

    Java实现简单井字棋小游戏代码实例

    这篇文章主要介绍了Java实现简单井字棋小游戏代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Java CAS与Atomic原子操作核心原理详解

    Java CAS与Atomic原子操作核心原理详解

    CAS(Compare and Swap)和Atomic原子操作是保证多线程并发安全的常用机制,能够高效地实现对共享变量的安全访问和修改,避免线程竞争导致的数据不一致和死锁等问题。它们的应用可以提高程序的并发性能和可维护性,是多线程编程中的重要工具
    2023-04-04
  • 使用java的注解(用在java类的方法上的注解)方法

    使用java的注解(用在java类的方法上的注解)方法

    这篇文章主要介绍了使用java的注解(用在java类的方法上的注解)方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • SpringBoot Event 事件如何实现异步延迟执行

    SpringBoot Event 事件如何实现异步延迟执行

    这篇文章主要介绍了Spring Boot Event 事件如何实现异步延迟执行问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • java注解结合aspectj AOP进行日志打印的操作

    java注解结合aspectj AOP进行日志打印的操作

    这篇文章主要介绍了java注解结合aspectj AOP进行日志打印的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java应用程序如何自定义log4j配置文件的位置

    java应用程序如何自定义log4j配置文件的位置

    这篇文章主要介绍了java应用程序如何自定义log4j配置文件的位置,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Java Object类equals方法

    Java Object类equals方法

    这篇文章主要介绍了Java Object类equals方法,Object类位于java.lang包中,java.lang包包含着Java最基础和核心的类,在编译时会自动导入,下文更多相关介绍,需要的小伙伴可以参考一下
    2022-04-04
  • IntelliJ IDEA下SpringBoot如何指定某一个配置文件启动项目

    IntelliJ IDEA下SpringBoot如何指定某一个配置文件启动项目

    这篇文章主要介绍了IntelliJ IDEA下SpringBoot如何指定某一个配置文件启动项目问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • java获取键盘输入的数字,并进行排序的方法

    java获取键盘输入的数字,并进行排序的方法

    今天小编就为大家分享一篇java获取键盘输入的数字,并进行排序的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • java中实现分页的几种常见方式总结

    java中实现分页的几种常见方式总结

    在项目中经常会查询大量数据,这就要用到分页展示,下面这篇文章主要给大家介绍了关于java中实现分页的几种常见方式,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-12-12

最新评论