`

className.class.getResourceAsStream()与ClassLoader.getSystemResourceAsStream() 的区别

 
阅读更多

className.class.getResourceAsStream


一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类Test.class ,同时有资源文件config.properties

那么,应该有如下代码:

//前面没有“/”代表当前类的目录

InputStream is1 = Test.class.getResourceAsStream("config.properties");
System.out.println(is1);// 不为null

第二:在Test.class目录的子目录下,例如:com.x.y 下有类Test.class ,同时在 com.x.y.prop目录下有资源文件config.properties

那么,应该有如下代码:

//前面没有“/”代表当前类的目录

InputStream is2 = Test.class.getResourceAsStream("prop/config.properties");
System.out.println(is2);//不为null

第三:不在同目录下,也不在子目录下,例如:com.x.y 下有类Test.class ,同时在 com.m.n 目录下有资源文件config.properties

那么,应该有如下代码:

//前面有“/”,代表了工程的根目录

InputStream is3 = Test.class.getResourceAsStream("/com/m/n/config.properties");

System.out.println(is3);//不为null

ClassLoader.getSystemResourceAsStream

className.class.getResourceAsStream 的第三种取得的路径一样,但少了“/”

InputStream is4 = ClassLoader.getSystemResourceAsStream("properties/PayManagment_Config.properties");
System.out.println(is4);//不为null

分享到:
评论

相关推荐

    class literal & instance.getClass() & Class.forName(String className)

    在Java中,class literal 是一个特殊的语法结构,通常表示为 `ClassName.class` 或 `SomeType.class`。它返回的是`Class`对象,该对象代表了在运行时的类型信息。例如,`String.class` 会返回一个`Class`对象,表示`...

    修改.class文件.zip

    然后,使用`java.lang.ClassLoader`的`defineClass`方法将字节码转换为`java.lang.Class`对象。接下来,获取到需要修改的方法,这可以通过反射API完成,如`Class.getMethod`。一旦找到了目标方法,你可以使用`...

    pytorch网络参数 weight bias 初始化详解

    权重初始化对于训练神经网络至关重要,好... classname = m.__class__.__name__ if classname.find('Conv') != -1: m.weight.data.normal_(0.0, 0.02) elif classname.find('BatchNorm') != -1: m.weight.data.nor

    浅析Java ClassName.this中类名.this关键字的理解

    Intent intent = new Intent(MyActivity.this, NextActivity.class); startActivity(intent); MyActivity.this.finish(); } }); } ... } ``` 在这个例子中,`MyActivity.this`被用来创建一个Intent,启动新...

    react-body-classname, 声明性嵌套状态化同构的body.className.zip

    react-body-classname, 声明性嵌套状态化同构的body.className react-body-classname 提供在 React App 中指定 document.body.className的声明方式。 支持服务器端使用。内置的反应副作用。安装yarn add react-bo

    Java类加载器(ClassLoader)1

    - 负责加载Java核心库,如rt.jar、resources.jar以及sun.boot.class.path路径下的类。 - 不继承自java.lang.ClassLoader,没有父加载器。 - 它仅加载以java、javax、sun等开头的基础包类。 2. 扩展类加载器...

    ClassLoader的 一些测试

    首先,ClassLoader的基本职责是加载.class文件,将字节码转化为运行时的Java对象。这个过程分为三个步骤:加载、验证和初始化。在Java中,类的加载是动态的,只有在被使用到时才会加载,这种机制叫做延迟加载或按需...

    在Java的反射中,Class.forName和Class

    `ClassLoader`的职责是将类的二进制数据转换为`java.lang.Class`对象,然后这些对象可以用于创建类的实例或访问其成员。 `Class.forName`实际上依赖于当前线程的上下文类加载器(Context Class Loader)。如果类...

    matla之指定空数组.zip

    matlab 空数组示例 A = ClassName.empty 返回由 ClassName 命名的类的 0×0 空数组。用类的实际名称替换 ...使用以下语法可以定义大小与现有空数组相同的空数组。将 size 函数返回的值作为输入传递。 示例

    Javascript 检测、添加、移除样式(className)函数代码

    在JavaScript中,操作DOM元素的CSS类(class)是常见的任务,这有助于动态改变网页的样式和交互。这里,我们有三个实用的函数:`hasClass`、`addClass`和`removeClass`,它们分别用于检测一个元素是否具有特定的样式...

    定义ClassLoader调用外部jar包

    在处理外部jar包时,我们可能需要从文件系统或网络读取类的`.class`文件,这可以通过`URLClassLoader`的子类实现,它提供了方便的方法来加载基于URL的类。 以下是一个简单的自定义ClassLoader示例,它能从指定的jar...

    手机滑动瀑布加载数据+Iscroll使用

    if (pullDownEl.className.match('loading')) { pullDownEl.className = ''; pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...'; } else if (pullUpEl.className.match('loading...

    class编译工具windows.zip

    执行此命令后,会在同一目录下生成对应的ClassName.class文件。 4. **运行Java程序**:编译成功后,可以使用`java ClassName`命令运行程序。注意,运行时需确保当前目录下有主类(包含main方法的类)的Class文件,...

    numberone.class

    * @ClassName: numberone.java * @Description: TODO(用一句话描述该文件做什么) * @author 范海涛 * @version V1.0 * @Date 2019-7-23 上午8:48:46 */ public class numberone { //请输入4位会员卡号: 4...

    ClassLoader实例

    String fileName = className.replace('.', '/') + ".class"; File classFile = new File(fileName); FileInputStream fis = new FileInputStream(classFile); int length = (int) classFile.length(); byte[] ...

    ClassLoader类加载器

    在上述代码中,`loadClassData`方法需要根据实际的需求去实现,例如读取指定路径的.class文件内容,或者从网络上下载字节码数据。 在实际开发中,自定义ClassLoader可能涉及到安全问题,因此必须谨慎处理。例如,...

    扫描Class文件的方法

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

    Class.forName

    1. **类加载**:JVM会尝试找到对应的.class文件,并将其加载到内存中。加载过程中会涉及到类加载器(ClassLoader),默认情况下,会使用当前线程的上下文类加载器。如果类尚未加载,JVM会先进行加载。在这个阶段,类...

    classloader简单例子

    public Class<?> loadClass(String className) throws ClassNotFoundException { try { return super.loadClass(className, false); } catch (ClassNotFoundException e) { // 当父类加载器无法加载时,我们...

Global site tag (gtag.js) - Google Analytics