`
jiahh
  • 浏览: 38604 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

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");

最后,自己的理解:
getResourceAsStream读取的文件路径只局限与工程的源文件夹中,包括在工程src根目录下,以及类包里面任何位置,但是如果配置文件路径是在除了源文件夹之外的其他文件夹中时,该方法是用不了的。
分享到:
评论

相关推荐

    Java中getResourceAsStream的用法.md

    Java中getResourceAsStream的用法.md

    Java中getResourceAsStream用法分析

    在Java编程中,`getResourceAsStream` 是一个非常实用的方法,用于从类路径或者特定上下文中获取资源流,通常用来读取配置文件、图片、XML文档等静态资源。这个方法在处理与代码打包在一起的非代码文件时非常方便。...

    Java 使用getClass().getResourceAsStream()方法获取资源

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

    java项目中获取路径详解

    在静态方法中,可以使用 `Test.class.getResource("").getPath()`,而在非静态方法中,可以使用 `this.getClass().getResource("").getPath()` 或 `Test.class.getResource("").getPath()`。这两个方法都可以获取...

    Java工程中资源文件的用法

    ### Java工程中资源文件的用法详解 #### 概述 资源文件,通常指的是`.properties`文件,这类文件采用键值对的形式存储数据,广泛应用于Java项目中存储配置信息、国际化字符串等。通过使用`java.util.Properties`类...

    java读取项目中的文件(src目录下)

    使用`getResource()`或`getResourceAsStream()`方法能更好地适应这些变化。 7. **异常处理**: - 在尝试读取文件时,应该始终处理可能出现的异常,如`FileNotFoundException`,确保程序在文件不存在或无法访问时...

    java文件路径获取

    本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好地理解和掌握这些技巧。 #### 二、基本概念 在深入讨论之前,我们需要了解几个基本概念: - **Classpath**: 是Java运行环境的一个重要...

    java类读取配置文件信息

    在Java类中,读取配置文件信息可以使用多种方法,其中一种方法是使用`this.getClass().getClassLoader().getResourceAsStream`方法。 `this.getClass().getClassLoader().getResourceAsStream`方法是Java类中的一种...

    java读取资源文件

    总之,Java提供了多种方式来读取项目中的资源文件,通过理解类路径和使用适当的IO方法,可以有效地在IDEA环境中加载和处理这些资源,无论是文本、音频还是图片。确保在实际应用中适当地管理和关闭资源,以保持程序的...

    java Swing读取图片

    在Java中,我们通常使用`ImageIcon`类的构造函数来加载图片。以下代码展示了如何从文件系统中加载图片: ```java String imagePath = "path/to/your/image.jpg"; ImageIcon imageIcon = new ImageIcon(imagePath);...

    在Java程序中获取当前运行程序的路径

    首先,我们可以通过`java.lang.Class`类的`getResource`或`getResourceAsStream`方法来获取类路径中的资源文件路径。这两个方法都是在类路径中查找资源,返回一个URL对象,从中可以获取路径信息。例如,如果我们有一...

    java-loadresource.rar

    本篇文章将详细探讨Java提供的两种主要方法:`Class.getResource`和`Class.getResourceAsStream`,用于加载类路径下的资源文件。 首先,`Class.getResource`方法返回一个`URL`对象,它表示资源的位置。这个方法接受...

    JAVA基于SnakeYAML实现解析与序列化YAML

    例如,可以在YAML文档中定义嵌套的对象,然后使用Yaml类的load()方法将其加载到Java对象中。 结论 JAVA基于SnakeYAML实现解析与序列化YAML是JAVA开发中的一种常见需求。通过使用SnakeYAML库,可以轻松地将YAML文档...

    在Java中如何利用Applet来加载图像

    若图像文件被打包在JAR中,可以使用`getResourceAsStream()`方法读取: ```java InputStream inObject = getClass().getResourceAsStream("image.gif"); byte[] buffer = new byte[inObject.available()]; for (int...

    Java实现从jar包中读取指定文件的方法

    此外,如果你需要频繁地从JAR中读取资源,可以考虑使用`Class.getResourceAsStream()`或`ClassLoader.getResourceAsStream()`方法,它们允许你通过类路径(相对于类或类加载器)访问资源,而无需显式打开`JarFile`。...

    JAVA获取各种路径总结

    - **使用 `getResource` 和 `getResourceAsStream` 方法** - 示例: - `getClass().getResourceAsStream(filePath);` (`filePath` 例如为 "/filename",默认从 WEB-INF/classes 开始查找,适用于 Tomcat 等容器...

    Java加载properties文件的六种方法

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

    java中File的相对路径与绝对路径总结

    - 注意点:使用`getResourceAsStream()`方法时,路径必须以`/`开头,这表示从类路径的根目录开始查找。 #### 绝对路径的应用场景 1. **基于bin目录下的文件访问**: - 假设项目的编译输出目录为`bin`,且文件...

    Java Properties 解决中文乱码和顺序读写.docx

    Java Properties 类是Java标准库中...总之,Java Properties类是Java开发中处理配置文件的利器,通过它的方法可以方便地读取、修改和保存配置信息,尤其在处理包含中文字符的配置时,注意编码问题,确保数据的正确性。

Global site tag (gtag.js) - Google Analytics