获取java资源的方法
获取java资源的方法
在开发java程序的过程中,我们经常要做的一件事就是获取资源。那么什么是资源呢?说白了,在计算机里那就是一堆数据。只是这堆数据对我们的java程序有多种表现形式,一般来说有File,URL,InputStream等等。而单就文件这一项就有很多种:配置文件,java类文件,jps文件,图片、css、js文件等等。面对这林林总总的资源,我们在设计一个读取资源的接口时,就需要针对不同形式的资源提供方法,这样就导致我们的接口还是与实际的资源形式绑定在一起,未能完全的抽象。另外,在java程序中资源的存放位置也是各异的。有的存放在classpath中,有的存放在文件系统中,有的存放在web应用中。而对于不同位置的资源,java程序获取这些资源的方法各有不同。
A、获取classpath中的资源:
Java代码
URL url = this.getClass().getResource("resource_name");
URL url = this.getClass().getClassLoader().getResource("resource_name");
URL url = Thread.currentThread().getContextClassLoader().getResource("resource_name");
那么在jdk中为什么又提供了三种方式来获取classpath下的资源呢?这其中是有些来头的。
第一行代码中是利用Class类的实例来获取,第二行代码是使用加载当前类的classloader来获取。看下jdk中的源代码会发现class类的实例最后还是委托加载他的classloader来获取资源的。
Java代码
public java.net.URL getResource(String name) {
name = resolveName(name);
ClassLoader cl = getClassLoader0();
if (cl==null) {
// A system class.
return ClassLoader.getSystemResource(name);
}
return cl.getResource(name);
}
从上面的代码中可以看出,对于资源的加载并没有像类加载所采用的双亲委托机制。而是当前类的classloader不为null的情况下先从当前类的classloader中加载资源。而只有当前类的classloader为null的时候才从system classloader中去加载资源。这样可以方便我们自定义配置类覆
相关文档:
java 的去掉空格空行的例子:
String so = "haolong, hei eip, "
+"ting, " +
& ......
参考网上的一些资料,自己研读了一番,用java构造了一个二叉树类,并带有测试的main方法,如有不足请大家多多指教。
/**
* 二叉树构造算法
* 二叉树定义:是度为2的有序树,它的特点是每个节点至多有两棵子树
* 我们的算法就是根据二叉树的递归定义而来,下面是二叉树的递归定义:
* n(n>=0)个节点的有限集。它 ......
在Java中有时会遇见乱码的情况,这里提供了几种转换方法
(一)Java中的编码转换
(二)可以在web.xml文件中配置的自己写的过滤器
第一种方法最简单也最方便,但是只能用在少量的地方或是偶尔一两次转码,如果大面积使用就不方便了,也大大增加了编码量,如果你的项目里没有用Spring的框架开 ......
ajax技术是使页面能局部刷新的一种技术,全称应该是asynchronous JavaScript and xml从几个单词就知道它的请求响应的处理是异步的,而且使用的是JavaScript和xml技术.
我们在java中使用ajax技术最简单的是使用它的一个框架dwr只要导入这个包,做相应的配置,可 ......