java中定位资源的方法有哪些

  

java中定位资源的方法有哪些?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!

java定位资源的方法:1,通过【Class.getResource()】定位类路径下的资源;2,通过【ClassLoader.getResource()】定位包的根目录下的资源。

癹ava中定位资源的方法有哪些"

<强> java定位资源的方法:

1,通过<代码> Class.getResource() 定位类路径下的资源(本/com/bbebfe/icons/sample.gif)

类clazz=this.getClass ();   网址URL=clazz.getResource (imageName);

2,通过<代码> ClassLoader.getResource() 定位包的根目录下的资源(bin/图标/sample.gif)

类clazz=this.getClass ();   URLClassLoader装载机=(URLClassLoader) clazz.getClassLoader ();   网址URL=loader.getResource (imageName);

3,通过<代码> ClassLoader.findResource() 提供自己定制的方式定位资源

网址URL=loader.findResource (imageName);

<强>那么这三种方法有那些区别,我们应该在何时使用哪种方法呢?

1, <代码> Class.getResource() 方法

该方法实际通过该类的类加载器的getResource()方法来获得资源,在调用类加载器的getResource()方法之前,Class.getResource()方法会对资源名称做一定的处理,构建一个该资源的绝对名称绝对的名字,大意是:

+如果资源名称以& # 39;/& # 39;(& # 39;/u002f& # 39;)开始,则资源的绝对名称是& # 39;/& # 39;以后的部分。

如果imageName是“/图标/sample.gif",则在这里会变成“图标/sample.gif"

+否则对于其他情况,绝对名称将是如下形式(给资源名称的前面加上modified_package_name/):

<代码> modified_package_name/resource_name>

其中修正的包名称含义是将当前对象所在的包名称中的& # 39;强生# 39;(& # 39;/u002e& # 39;)替换为& # 39;/& # 39;

如果ClassLoader.getResource()方法返回一个值为零的URL,则Class.getResource()方法最终会将资源请求交给<代码> ClassLoader.getSystemResource(以)

2, <代码> ClassLoader.getResource() 方法

该对资源进行查找,资源的名称是以& # 39;/& # 39;分隔的路径,这个方法首先查找自己的父亲类加载器,由自己的父类加载器来查找资源(实际上,如果父亲的父亲不是空,则父亲仍会向上提交查找请求)。如果自己的父类加载器是null,则查找Java虚拟机中内建的类装入器,并将资源请求提交给它们,如果这些操作都失败了,则类加载器会调用自己的findResource()方法来查找资源。

3 <代码> ClassLoader.findResource() 方法

该方法在内部查找指定的资源,如果你实现了自己的类装入器,则应该重载这个方法以自己特定的方式来查找类文件和资源。

感谢各位的阅读!看完上述内容,你们对java中定位资源的方法有哪些大概了解了吗?希望文章内容对大家有所帮助。如果想了解更多相关文章内容,欢迎关注行业资讯频道。

java中定位资源的方法有哪些