`

Java目录总结(五.getResourceAsStream的用法)

    博客分类:
  • Java
阅读更多

首先,Java中的getResourceAsStream有以下几种:
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由 ClassLoader获取资源。

2. Class.getClassLoader.getResourceAsStream(String path)默认则是从ClassPath根下获取(跟new File()相同),path不能以’/'开头,最终是由ClassLoader获取资源。

3. ServletContext. getResourceAsStream(String path):默认从WebAPP根目录下取资源,Tomcat下path是否以’/'开头无所谓,当然这和具体的容器实现有关。

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

 

例如:

InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt"); 
(test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级目录位于src目录下)
getClassLoader().getResourceAsStream默认为根目录!

InputStream is=Test1.class.getResourceAsStream("/test.txt");
 
(test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)
getResourceAsStream默认为当前类所在目录!



其次,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 使用getClass().getResourceAsStream()方法获取资源

    总结来说,`getClass().getResourceAsStream()`方法是Java中加载类路径内资源文件的一种标准方式。正确使用这个方法,能够帮助你在不同场景下方便地获取和处理资源文件。理解其工作原理和不同用法,对于编写健壮的...

    java-loadresource.rar

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

    Java中getResourceAsStream用法分析

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

    Java文件路径详解

    Java 文件路径详解是 Java 中获取文件路径的方式,包括 Class.getResourceAsStream() 和 ClassLoader.getResourceAsStream() 两种方法。这些方法可以帮助开发者快速获取文件路径,以便于读取文件的内容。

    java读取资源文件

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

    Java中getResourceAsStream的用法.md

    Java中getResourceAsStream的用法.md

    java文件路径获取

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

    关于java和web工程项目中各种路径的获取总结借鉴.pdf

    ### 关于Java与Web工程项目中各种路径的获取总结 #### 一、获取Web服务器项目的真实物理路径 在Java Web开发中,我们经常会遇到需要获取Web应用程序的实际物理路径的情况。这通常用于读取文件或者访问资源文件等...

    Java-recourse.rar_java读取recouse

    2. **使用`Resources`类**:`java.nio.file.Resources`类提供了一些静态方法,可以直接从类路径加载资源为`InputStream`、`Reader`或读取为字符串。例如: ```java InputStream in = Resources.getResource("path/...

    java类读取配置文件信息

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

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

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

    Java 读取资源文件

    - 如果你的资源文件是Java项目的一部分,你可以在类路径中直接导入它们,然后使用`getClass().getResource()`或`getClass().getResourceAsStream()`方法。 4. 文件系统访问 - 如果资源文件位于文件系统的某个位置...

    Java加载properties文件的六种方法

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

    JAVA操作properties文件.pdf

    - 使用`getResourceAsStream`方法通过类加载器加载资源文件 ```java InputStream in = getClass().getResourceAsStream("/IcisReport.properties"); prop.load(in); ``` - 使用`ResourceBundle`获取资源文件 ...

    java读取配置文件的实例代码

    总结来说,Java中读取配置文件是一个基本但至关重要的操作,使用`Class.getResourceAsStream`结合`Properties`类可以轻松完成。确保正确设置配置文件的路径,以及在使用完毕后关闭`InputStream`,以避免资源泄露。...

    Java读取Properties文件的六种方法

    #### 五、使用 `Class` 的 `getClassLoader()` 方法结合 `getResourceAsStream()` 方法 这种方法也是从类路径下加载资源,但提供了更多的灵活性。 ```java import java.io.InputStream; import java.util....

    java 读properties 文件六种方法

    ### 方法五:使用`ClassLoader`的`getResourceAsStream()`方法 这种方法提供了更灵活的资源定位方式,通常用于在类路径或特定目录下查找资源。 ```java import java.io.InputStream; import java.util.Properties; ...

    java读取.properties配置信息

    总结,Java中的`.properties`文件是管理和读取应用程序配置的有效方式。使用`Properties`类提供的API,可以方便地加载、读取和处理配置信息。在实际项目中,确保对异常进行适当处理,并进行充分的测试,以确保配置...

Global site tag (gtag.js) - Google Analytics