java利用classloader加载资源

来源:互联网 发布:淘宝白菜网 编辑:程序博客网 时间:2024/05/22 12:53

    java中资源加载大体有以下几种方式:

    一、使用系统的classloader加载。例如在eclipse中ClassLoader.getSystemClassLoader().getResourceAsStream("a.txt"); 会在bin目录下寻找a.txt;如果要在子目录下加载资源,则路径不能以 ‘/’ 开头;

    二、使用类加载。InputStream in=XXX.class.getResourceAsStream("a.txt"); 在XXX类目录下寻找a.txt;

    三、使用类的classloader加载。XXX.class.getClassLoader().getResourceAsStream("a.txt"); 在XXX类目录下寻找a.txt;

    四、使用Classloader静态方法加载。ClassLoader.getSystemResourceAsStream("a.txt"); 在bin目录下寻找a.txt。

    理解这四类的关键在于使用Classloader加载资源时把bin目录当做基目录;而使用Class加载是把类所在目录当基目录。

    另外可以认为所有的路径开头都不能有 '/' 字符。