`

Classloader getResourceAsStream深入

阅读更多
先写个简单的类
public class Helper {

	public static void main(String []args){
		try {
			new Helper().read("com/test/one/Foo.class");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public void read(String f) throws IOException{
		InputStream in=getClass().getClassLoader().getResourceAsStream((f));


		int len=0;
		OutputStream out=new FileOutputStream("c:\\ooy.class");
		byte b[]=new byte[1023];
		while((len=in.read(b))!=-1){
			out.write(b);
		}
	}
}


他的路径是以当前类文件的地址搜索的
他和getResource()一样的搜索顺序!!
此方法首先搜索资源的父类加载器;如果父类加载器为 null,则搜索的路径就是虚拟机的内置类加载器的路径。如果搜索失败,则此方法将调用 findResource(String) 来查找资源。
如果你改为 read("");
他会自动加载你工程下 default package下类的名字 

你输入到txt 就会发现 类名!
分享到:
评论

相关推荐

    ClassLoader

    ### ClassLoader概述 在Java中,`ClassLoader`是负责加载类到JVM的重要组件之一。它不仅能够确保每个被加载的类都具有唯一的标识符,还能处理...理解类加载器的工作原理对于深入学习Java虚拟机和其底层机制非常重要。

    Tomcat 5.0.18 ClassLoader source code insight

    《深入理解Tomcat 5.0.18 ClassLoader源码》 在Java应用程序服务器的世界里,Tomcat作为开源的轻量级应用服务器,扮演着重要的角色。它以其高效、稳定和易于部署的特点赢得了广大开发者的心。对于一个专业的IT人士...

    java文件路径获取

    - 当使用`ClassLoader.getResource`或`ClassLoader.getResourceAsStream`时,路径必须以 `/` 开头,否则可能无法找到资源。 - `getClassLoader().getResource("/")`会返回`classpath`的根目录,但`getClassLoader()....

    IOUtils组件,搭配本文项目专用

    InputStream inputStream = classLoader.getResourceAsStream("example.txt"); if (resource != null) { System.out.println("Resource found at: " + resource); } else { System.out.println("Resource not ...

    java类动态获取相对路径

    `ClassLoader`提供了`getResource`和`getResourceAsStream`方法来获取资源的URL或输入流。例如,如果我们有一个名为`res.txt`的文件与`MyClass`同级,可以这样获取其URL: ```java URL resourceUrl = classLoader...

    java 读取资源文件

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

    读取jar文件

    - 直接使用类加载器:`ClassLoader.getSystemClassLoader().getResourceAsStream(path)` #### 三、示例代码分析 以下是一段关于如何从jar包中读取资源文件的示例代码: ```java package edu.hxraid; import java....

    jar包中类的加载及jar中资源的使用

    1. `getResourceAsStream()`:通过`ClassLoader`的`getResourceAsStream()`方法,可以获取`jar`包内的资源文件的输入流,例如`getClass().getResourceAsStream("/config.properties")`。 2. `getResource()`:返回...

    深入java虚拟机(八)开发自己的类加载器 1

    【深入Java虚拟机(八)开发自己的类加载器 1】 在Java编程中,类加载器(ClassLoader)是Java虚拟机(JVM)的核心组成部分,它负责将类的字节码加载到JVM中并转化为Java类。通常,Java应用程序使用系统默认的类...

    读取war包或jar包内的文件

    2. **getResource() 和 getResourceAsStream()**: 这两个方法是ClassLoader和类的Class对象提供的。`getResource()`返回一个URL,用于定位资源的路径;`getResourceAsStream()`则返回一个InputStream,可以直接读取...

    java 静态代码块通过类加载器获取资源文件例子

    Java支持多种类加载器,包括启动类加载器(Bootstrap ClassLoader)、扩展类加载器(Extension ClassLoader)和应用程序类加载器(Application ClassLoader)。当类首次被引用时,对应的类加载器会查找并加载该类的...

    资源文件操作

    在Java中,我们可以利用`Class.getResourceAsStream`或`ClassLoader.getResourceAsStream`来实现类似的功能。 对于播放音乐这样的任务,我们需要了解多媒体处理库。在Windows环境下,可以使用DirectX或者Windows ...

    扫描Class文件的方法

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

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

    本篇文章将深入探讨如何在Java中操作Properties文件。 首先,了解资源文件在项目中的位置至关重要。在Java中,Properties文件一般存放在类路径(classpath)下,这通常是指工程项目的类包(class package)结构中。...

    java配置文件 beta v1.0

    1. 加载配置文件:使用`InputStream`打开文件,例如通过`FileInputStream`或`ClassLoader.getResourceAsStream()`方法。 2. 创建`Properties`对象:`Properties`类是用于处理配置文件的标准工具。 3. 加载配置:调用...

    Java-recourse.rar_java读取recouse

    1. **使用`ClassLoader`**:Java的`ClassLoader`类能够加载指定类路径下的资源。你可以通过`Thread.currentThread().getContextClassLoader().getResource()`或`YourClass.class.getResource()`来获取`URL`对象,...

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

    本篇文章将深入探讨Java如何操作Properties文件,包括读取、修改、删除和保存这些文件中的数据。 首先,我们来看一下Properties文件在项目中的存放位置。通常,Properties文件会放在类路径(classpath)下,具体来...

    java 枚举遍历键值对 属性类Properties 类加载器

    Java有三种主要的类加载器:Bootstrap ClassLoader、Extension ClassLoader和App ClassLoader。在加载Properties文件时,通常使用类加载器来定位资源。例如,`getClass().getResourceAsStream()`就使用了当前类的类...

    java对properties文件的操作.pdf

    本篇将深入探讨Java如何操作Properties文件,包括读取、修改、删除其内容。 1. **资源文件的位置**: Properties文件一般存放在类路径(classpath)下,这意味着它们应该位于工程的`src/main/resources`目录或最终...

    java版电子词典小游戏

    Java的ClassLoader和getResourceAsStream()方法可以帮助加载这些资源。 10. **测试**:单元测试和集成测试确保代码的正确性,JUnit和Mockito等工具可以帮助开发者进行自动化测试。 这个项目不仅是学习Java编程的好...

Global site tag (gtag.js) - Google Analytics