您的位置:首页 > 编程语言 > Java开发

Java中getClassLoader().getResourceAsStream("XXX")的用法

2013-08-17 10:07 627 查看
  动态加载文件的时候经常用

InputStream is = XMLAnalyzer.class.getClassLoader().getResourceAsStream("test.xml");

首先

xxxxx.class 是获得xxxx这个类对应的Class对象,任何一个类被装载进入虚拟机,都会为这个类生成一个java.lang.Class对象来指代这个类,通过这个对象,你可以访问和控制xxxx这个类的一些特性。

getClassLoader()

 获得此类类加载器

getResourceAsStream("")

获取文件的流

但是经常有路径问题

class 和 classloader都有这个方法

如果文件放在根目录下

1,用Class.getResourceAsStream() 时,路径应该是以"/"开头的,如:

class.getResourceAsStream("/...");

如果不加'/',说明从本类包下加载

2,如果直接用ClassLoader的getResourceAsStream() 不用以"/"开头.如,

class.getResourceAsStream("......");

  想到调用包下的资源就要

  class.getResourceAsStream("com/jm/...");

其实class的getResourceAsStream("")是委托classloader来完成的,本质还是classLoader实现,不过直接用class用起来方便一些。

其实他们还有共同的另一个方法

URL url1 = XXXX.getResource("");

两个用法与getResourceAsStream()相同,只不过是获得的是一个URL
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐