您好,欢迎访问一九零五行业门户网

Java如何实现读取类路径下资源文件的代码案例

这篇文章主要介绍了java 读取类路径下的资源文件实现代码的相关资料,主要实现工具类代码resourceloadutil.java的实例需要的朋友可以参考下
java 读取类路径下的资源文件实现代码
一、工具类代码resourceloadutil.java
import java.io.ioexception; import java.io.inputstream; import java.net.url; import java.util.arraylist; import java.util.enumeration; import java.util.list; public class resourceloadutil { /** * @param args */ public static void main(string[] args) { system.out.println("byclazz...\n--------------------------"); system.out.println(loadresourcebyclazz(string.class, "/java/lang/string.class")); system.out.println(loadresourcebyclazz(string.class, "/resourceloadutil.class")); system.out.println(); system.out.println("byclasloader...\n--------------------------"); system.out.println(loadresourcebyclassloader("java/lang/string.class")); system.out.println(loadresourcebyclassloader("resourceloadutil.class")); system.out.println(); system.out.println("sbyclasloader...\n--------------------------"); system.out.println(loadresourcesbyclassloader("java/lang/string.class")); system.out.println(loadresourcesbyclassloader("resourceloadutil.class")); system.out.println(loadresourcesbyclassloader("struts-plugin.xml")); } /** * 根据class加载资源文件 * * @param clazz * @param path * 以'/'开头的路径: 使用绝对路径寻找文件(以classpath为根路径开始)<br> * 否则: 使用相对路径寻找文件(相对于clazz位置路径开始) * @return */ public static inputstream loadresourcebyclazz(class<?> clazz, string path) { return clazz.getresourceasstream(path); } /** * 根据classloader加载资源文件(单个), 使用默认的classloader! * * @param path * 不能以'/'开头的路径 * @return */ public static inputstream loadresourcebyclassloader(string path) { return loadresourcebyclassloader(null, path); } /** * 根据classloader加载资源文件(单个), 使用默认的classloader! * * @param path * 不能以'/'开头的路径 * @return */ public static inputstream loadresourcebyclassloader(classloader cl, string path) { if (cl == null) { cl = thread.currentthread().getcontextclassloader(); } return cl.getresourceasstream(path); } /** * 根据classloader加载资源文件(多个),使用默认的classloader! * * @param path * 不能以'/'开头的路径 * @return */ public static list<url> loadresourcesbyclassloader(string path) { return loadresourcesbyclassloader(null, path); } /** * 根据classloader加载资源文件(多个),使用指定的classloader! * * @param path * 不能以'/'开头的路径 * @return */ public static list<url> loadresourcesbyclassloader(classloader cl, string path) { if (cl == null) { cl = thread.currentthread().getcontextclassloader(); } list<url> urllst = new arraylist<url>(); try { enumeration<url> urlsenum = cl.getresources(path); while (urlsenum.hasmoreelements()) { url url = (url) urlsenum.nextelement(); urllst.add(url); } } catch (ioexception e) { e.printstacktrace(); } return urllst; } }
二、执行结果
byclazz... -------------------------- sun.net.www.protocol.jar.jarurlconnection$jarurlinputstream@11cfb549 java.io.bufferedinputstream@a422ede byclasloader... -------------------------- sun.net.www.protocol.jar.jarurlconnection$jarurlinputstream@7f12f614 java.io.bufferedinputstream@35d9dc39 sbyclasloader... -------------------------- [jar:file:/d:/java/jdk1.6.0_25/jre/lib/rt.jar!/java/lang/string.class] [file:/e:/workspace/jbds/spring+struts2-integration/target/classes/resourceloadutil.class] [jar:file:/e:/360data/%e9%87%8d%e8%a6%81%e6%95%b0%e6%8d%ae/.m2/repository/org/apache/struts/struts2-spring-plugin/2.3.4.1/struts2-spring-plugin-2.3.4.1.jar!/struts-plugin.xml, jar:file:/e:/360data/%e9%87%8d%e8%a6%81%e6%95%b0%e6%8d%ae/.m2/repository/org/apache/struts/struts2-config-browser-plugin/2.3.4.1/struts2-config-browser-plugin-2.3.4.1.jar!/struts-plugin.xml]
以上就是java如何实现读取类路径下资源文件的代码案例的详细内容。
其它类似信息

推荐信息