Class类中有个getResourceAsStream()方法。
ClassLoader类中也有getResourceAsStream()。
Class类是委托给ClassLoader。
但是对于传进去的参数会做处理。
如果开头是以“/”。则去掉。
否则 获得这个Class所在的包。再加上传进去的参数。
所以XX.class.getResourceAsStream("/conf/ss.txt")==XX.class.getClassLoader.getResourceAsStream("conf/ss.txt").
对于ClassLoader 如何获得这个资源。。。
终于从OpenJDK看到了ClassLoader.getResourceAsStream(String name);
首先它会根据你的classpath的配置去创建Loader对象。
这个Loader的base就是你的classpath。
你有多个classpath就会有多个Loader。
然后按照顺序去base+name去寻找你的文件。
下一步就看下File()是如何处理的。。。
ClassLoader类中也有getResourceAsStream()。
Class类是委托给ClassLoader。
但是对于传进去的参数会做处理。
如果开头是以“/”。则去掉。
否则 获得这个Class所在的包。再加上传进去的参数。
所以XX.class.getResourceAsStream("/conf/ss.txt")==XX.class.getClassLoader.getResourceAsStream("conf/ss.txt").
对于ClassLoader 如何获得这个资源。。。
终于从OpenJDK看到了ClassLoader.getResourceAsStream(String name);
首先它会根据你的classpath的配置去创建Loader对象。
这个Loader的base就是你的classpath。
你有多个classpath就会有多个Loader。
然后按照顺序去base+name去寻找你的文件。
下一步就看下File()是如何处理的。。。