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

ClassLoader.getResourceAsStream() 与 Class.getResourceAsStream()的区别

 
阅读更多

     

    Class.getResourceAsStream() 会指定要加载的资源路径与当前类所在包的路径一致。

     例如你写了一个MyTest类在包com.test.mycode 下,那么MyTest.class.getResourceAsStream("name") 会在com.test.mycode包下查找相应的资源。

     如果这个name是以 '/' 开头的,那么就会从classpath的根路径下开始查找。

  

    ClassLoader.getResourceAsStream()  无论要查找的资源前面是否带'/' 都会从classpath的根路径下查找。

    所以: MyTest.getClassLoader().getResourceAsStream("name") 和 

            MyTest.getClassLoader().getResourceAsStream("name") 的效果是一样的。

                                                                                 

 

   顺便提下JAVA中类的加载器:

一共有三种加载器

bootstrap classloader :负责加载JAVA核心类( jre 下lib和class目录中的内容)
extension classloader :负责加载JAVA扩展类(jre 下lib/ext 目录中的内容)
system classloader :负责加载应用指定的类 (环境变量classpath中配置的内容)

 

一个类的加载顺序也是按上面的排列来的,这样就能保证系统的类能先加载。 

与此同时用户也可以自己定义ClassLoader,用来加载特殊的资源。

分享到:
评论

相关推荐

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

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

    Java文件路径详解

    在 Java 中,有两种方式可以获取文件路径,即使用 Class.getResourceAsStream() 和 ClassLoader.getResourceAsStream()。 Class.getResourceAsStream() Class.getResourceAsStream() 方法返回的是一个 InputStream...

    java文件路径获取

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

    Java 读取资源文件

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

    jwwe学习资料,jwwe学习资料

    InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); ``` ### 6. 使用`java.lang.ClassLoader.getSystemResourceAsStream()` 这是一...

    java对properties文件的操作归纳.pdf

    `.properties`文件通常存放在类路径(classpath)下,这意味着它们可以放在工程的`src/main/resources`目录下(对于Maven项目),或者与编译后的`.class`文件位于同一目录下。 2. **获取资源文件**: - 使用`...

    java对properties文件的操作.pdf

    - 使用 `this.getClass().getResourceAsStream()`,如:`InputStream inputstream = this.getClass().getResourceAsStream("/info.properties");` 这种情况要求文件路径以 `/` 开头,表示从类路径的根开始查找。 3...

    ClassLoader

    #### 与反射的区别 虽然该实例看起来与反射机制类似,但二者在实现细节上有所不同: - **反射机制**通常涉及使用`Class.forName()`方法或`Constructor.newInstance()`方法来创建对象。 - **自定义类加载器**则是通过...

    附带资源的jar包

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

    java对properties文件的操作[参考].pdf

    在Java中,Properties文件一般存放在类路径(classpath)下,这通常是指工程项目的类包(class package)结构中。这样,程序在运行时可以通过类加载器访问到这些资源文件。 接下来,我们讨论两种获取Properties文件...

    java 读取资源文件

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

    读取Properties文件的六种方法

    try (InputStream in = ClassLoaderResourceExample.class.getClassLoader().getResourceAsStream(fileName)) { props.load(in); System.out.println("Read properties from class loader: " + props); } catch ...

    API读取Properties文件的六种方法

    这种方法类似于`Class.getResourceAsStream()`,不同之处在于它通过类加载器来查找资源,这使得它在某些情况下更加灵活。 ```java import java.io.InputStream; import java.util.Properties; public class ...

    java对properties文件的操作[定义].pdf

    通常,Properties文件会放在类路径(classpath)下,具体来说,是与编译后的.class文件相同的包结构内。这样做便于Java程序在运行时能够通过类加载器轻松找到这些资源文件。 在Java中,有两种主要方式来获取...

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

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

    Java读取Properties文件的六种方法

    InputStream input = YourClass.class.getResourceAsStream("/config.properties"); Properties prop = new Properties(); prop.load(input); ``` 3. 使用`java.nio.file`包 Java 7引入了NIO.2 API,我们可以使用`...

    Java读取Properties文件的六种方法.txt

    - **`ClassLoader`和`Class.getResourceAsStream()`**:适用于类路径下的资源文件。 - **`URL`**:适用于网络资源文件。 - **`Files.newBufferedReader()`**:适用于Java 7及以上版本,代码更简洁。 - **`...

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

    当Properties文件与类路径相关联时,可以使用类的`getResourceAsStream()`方法。例如: ```java String name = "config.properties"; InputStream in = JProperties.class.getResourceAsStream(name); ...

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

    - 使用`Class.getResourceAsStream(String name)`:通过类路径读取资源文件。 - 使用`ClassLoader.getResourceAsStream(String name)`:通过类加载器读取资源文件。 在处理包含中文字符的配置文件时,可能会遇到...

    Java加载properties文件的六种方法

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

Global site tag (gtag.js) - Google Analytics