`
baiqian
  • 浏览: 38429 次
  • 性别: Icon_minigender_2
  • 来自: 河南
社区版块
存档分类
最新评论

class和classLoader的getResourceAsStream()方法

    博客分类:
  • JAVA
阅读更多

两个都可以用于从 classpath 里面进行资源读取,

两个方法的区别是资源的定义不同,

一个主要用于相对与一个object取资源,

而另一个用于取相对于classpath的资源,用的是绝对路径。

在使用Class.getResourceAsStream 时, 资源路径有两种方式,

一种以 / 开头,则这样的路径是指定绝对路径,

一种不以 / 开头, 则路径是相对与这个class所在的包的。

在使用ClassLoader.getResourceAsStream时, 路径直接使用相对于classpath的绝对路径。

 

 

 

Tools.class.getClassLoader().getResourceAsStream(file);
首先,调用对象的getClass()方法是获得对象当前的类类型,这部分数据存在方法区中,而后在类类型上调用getClassLoader()方法是得到当前类型的类加载器,在Java中所有的类都是通过加载器加载到虚拟机中的,而且类加载器之间存在父子关系,就是子知道父,父不知道子,这样不同的子加载的类型之间是无法访问的(虽然它们都被放在方法区中),所以在这里通过当前类的加载器来加载资源也就是保证是和类类型同一个加载器加载的。
最后调用了类加载器的getResourceAsStream()方法来加载文件资源

 

分享到:
评论

相关推荐

    ClassLoader

    4. **使用`defineClass`方法定义类**:当输入流不为空时,使用`ClassLoader`的`defineClass`方法将字节数组转换为`Class`对象。 5. **实例化类**:通过`myLoader.loadClass(...

    Java文件路径详解

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

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

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

    java classloader classpath 张孝祥

    #### 四、`getResource`和`getResourceAsStream`方法 ##### 4.1 方法介绍 `ClassLoader`提供了两个重要的方法用于资源定位: - `public URL getResource(String name)`:返回一个`URL`对象,表示名为`name`的资源...

    扫描Class文件的方法

    2. **使用ClassLoader资源流**:通过`ClassLoader.getResource()`或`getResourceAsStream()`获取类路径上的资源,这种方法适用于JAR文件或被打包的Class文件。 3. **Java SPI服务发现**:通过`java.util....

    java文件路径获取

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

    Tomcat 5.0.18 ClassLoader source code insight

    `WebappClassLoader`实现了`getResource`和`getResourceAsStream`方法,以便于获取Web应用中的资源。 4. **同步机制**:为了保证并发环境下的安全,`WebappClassLoader`使用锁机制来控制对类加载的访问,避免了多...

    Java 读取资源文件

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

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

    5. **使用class.getClassLoader()的getResourceAsStream()方法** 同样,如果你有一个类加载器,可以通过`getResourceAsStream()`方法获取流。例如: ```java String name = "config.properties"; InputStream in...

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

    从Java JAR文件包中读取资源是Java...通过合理利用`getResource`和`getResourceAsStream`等方法,结合正确的资源路径和类加载器,可以高效地实现这一目标。理解这些概念对于构建可移植且健壮的Java应用程序至关重要。

    Java加载properties文件的六种方法

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

    java 读properties 文件六种方法

    ### 方法四:使用`Class`对象的`getResourceAsStream()`方法 这种方法允许你根据类路径中的资源名称读取Properties文件。 ```java import java.io.InputStream; import java.util.Properties; public class ...

    Java加载properties文件实现方式详解

    使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法加载properties文件 Java中的ClassLoader类提供了getResourceAsStream()方法,该方法可以加载properties文件。下面是使用...

    java读取proterties的六种方法

    5. **使用 `class.getClassLoader()` 的 `getResourceAsStream()` 方法**: 类加载器也可以用来获取输入流,这适用于类路径中的资源。示例: ```java InputStream in = JProperties.class.getClassLoader()....

    SpringBoot如何读取war包jar包和Resource资源

    解决方法是使用 ClassLoader 的 getResourceAsStream() 方法获取资源文件的流,通过流来读取资源文件。 2. getResource() 和 getResourceAsStream() 的区别 在读取资源文件时,通常使用 getResource() 或 ...

    Java读取Properties文件几种方法总结

    方法五:使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法也可以读取Properties文件。...

    java反射说明

    InputStream is = classLoader.getResourceAsStream("config.properties"); ``` #### 五、反射的安全性和性能问题 虽然Java反射机制提供了强大的功能,但在使用时也应注意其潜在的问题: - **安全性**: 由于反射...

    读取Properties文件的六种方法

    这种方法利用了Java类加载机制,通过类的`getResourceAsStream()`方法加载位于类路径下的`Properties`文件。 **代码示例:** ```java import java.io.InputStream; import java.util.Properties; public class ...

    API读取Properties文件的六种方法

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

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

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

Global site tag (gtag.js) - Google Analytics