`

(转)理解 Class.getResourceAsStream()

    博客分类:
  • java
阅读更多
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下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 使用getClass().getResourceAsStream()方法获取资源

    在Java编程中,`getClass().getResourceAsStream()`是一个非常实用的方法,用于从类路径(Classpath)中加载资源,如配置文件、图片、字体等。这个方法返回一个`InputStream`对象,可以通过它读取到资源文件的内容。...

    java-loadresource.rar

    总之,理解并熟练运用`getResource`和`getResourceAsStream`是Java开发人员必备的技能之一,它们是连接Java代码与类路径中资源的关键桥梁。正确地使用这些方法,可以使得你的应用程序更加高效、可靠。

    java读取资源文件

    - 使用`Class.getResource()`或`Class.getResourceAsStream()`方法: - `getResource()`返回一个`URL`对象,适合处理网络或磁盘上的资源。 - `getResourceAsStream()`返回一个`InputStream`,适用于读取二进制...

    java文件路径获取

    - 当使用`Class.getResource`或`Class.getResourceAsStream`时,如果路径不以 `/` 开头,那么查找将从调用该方法的类所在的包开始。 - 当使用`ClassLoader.getResource`或`ClassLoader.getResourceAsStream`时,路径...

    Java 读取资源文件

    1. 使用`Class.getResource()`和`Class.getResourceAsStream()` - `Class.getResource(String path)`方法返回一个`URL`对象,表示相对于当前类的类路径上的资源的位置。例如,如果你有一个名为`config.properties`...

    Java-recourse.rar_java读取recouse

    String content = IOUtils.toString(YourClass.class.getResourceAsStream("/resource.txt"), StandardCharsets.UTF_8); ``` 5. **Spring Framework**:在Spring框架中,可以使用`Resource`接口来操作资源,例如...

    Java中getResourceAsStream用法分析

    1. **`Class.getResourceAsStream(String path)`** 这个方法从当前类所在的包下寻找资源。如果`path`不以'/'开头,那么路径会相对于当前类的包进行解析;如果`path`以'/'开头,它将从类路径的根开始查找,即全局...

    jar包里读取图片.rar ,,自己写的例子

    1. **使用Class.getResource()或Class.getResourceAsStream()** 这两个方法是Java提供用于从类路径中获取资源的关键。`getResource()`返回一个`URL`对象,`getResourceAsStream()`则返回一个`InputStream`,适合于...

    Java加载properties文件的六种方法

    5. **使用 `class.getClassLoader()` 所得到的 `java.lang.ClassLoader` 的 `getResourceAsStream()` 方法** 这种方法与第4种类似,只是通过类加载器获取资源输入流。示例: ```java InputStream in = ...

    JAVA 资源定位

    例如,`java.lang.Class.getResource()` 和 `java.lang.Class.getResourceAsStream()` 方法可以从类路径加载资源。这两个方法都接受一个相对路径作为参数,路径的根是加载类的包。例如,如果你有一个名为`...

    java读取properties属性文件

    在类路径中查找属性文件时,可以使用`Class.getResourceAsStream()`方法,这适用于在JAR文件或类路径下的属性文件: ```java InputStream is = MyClass.class.getResourceAsStream("/config.properties"); props...

    附带资源的jar包

    例如,我们可以通过`Class.getResource()`或`Class.getResourceAsStream()`方法来获取到类路径下的资源。例如,如果有一个名为`config.properties`的配置文件与某个类在同一个包下,我们可以在类中这样获取: ```...

    使用J2SEAPI读取Properties文件的六种方法

    InputStream is = MyClass.class.getResourceAsStream("/config.properties"); try { prop.load(is); } finally { is.close(); } ``` 这里`MyClass`代表当前类,也可以替换为其他类,资源文件路径通常以斜杠...

    从java jar文件包中读资源的常用方法

    InputStream is = YourClass.class.getClassLoader().getResourceAsStream("FileName"); ``` 这里,`YourClass`是调用方法的类,`getClassLoader()`返回该类的类加载器,从而能够访问类路径中的资源。 ### 实际...

    java学习资料(我的积累)

    一个替代方案是使用`ClassName.class.getResourceAsStream()`,通过添加适当的`../`数量来达到同样的目的,但需要注意的是,这种方法对`../`的数量有限制,一般少于六个。此外,如果类继承自`HttpServlet`,可以通过...

    详解Java项目中读取properties文件

    首先,最常用的读取properties文件的方法是利用`java.lang.Class`类的`getResourceAsStream(String name)`方法。例如: ```java InputStream in = getClass().getResourceAsStream("资源Name"); ``` 这种方法的...

    Jar包中如何正确地加载资源文件博文中用到的测试项目源码

    你可以通过`Thread.currentThread().getContextClassLoader()`或`Class.getResourceAsStream()`来获取`ClassLoader`实例,然后使用`getResourceAsStream()`方法加载资源文件。例如: ```java InputStream in = ...

    java 读取资源文件

    - **获取InputStream**:使用`Class.getResourceAsStream()` 或 `ClassLoader.getResourceAsStream()` 方法,传入文件路径(相对于类路径)来获取InputStream。 - **读取文件**:创建Properties对象,然后调用其`...

    JvYaml、SnakeYAML、YamlBeans、JYaml 代码DEMO

    本篇文章将详细介绍四个Java库:JvYaml、SnakeYAML、YamlBeans和JYaml,它们都是用于处理YAML文件的开源工具,并提供代码DEMO来帮助理解其用法。 1. JvYaml(Java YAML API) JvYaml是Java中的一个轻量级YAML解析...

    读取jar文件

    ### 读取jar文件中的资源...理解类加载器的工作原理和资源文件的路径表示方式对于正确实现这一功能至关重要。通过上述示例代码及其分析,我们不仅可以解决实际开发中的问题,还能更好地掌握Java环境下的资源管理技术。

Global site tag (gtag.js) - Google Analytics