Java 读取类路径下的资源文件实现代码
程序员文章站
2023-12-21 15:23:52
java 读取类路径下的资源文件实现代码
一、工具类代码resourceloadutil.java
import java.io.ioexception;...
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 读取类路径下的资源文件实现代码
-
浅谈Java工程读取resources中资源文件路径的问题
-
00024.03 反射:使用类加载器来加载类路径下的资源文件(包含读取配置文件)
-
java字节流——实现文件的拷贝,将一张图片复制到另一个路径下
-
java路径问题:springboot的前段静态资源路径、java后端读取文件路径、直接访问html
-
jsp+java类+servlet实现文件读取、写入的功能(一)
-
php中使用DOM类读取XML文件的实现代码_PHP教程
-
java.util包下的资源绑定器获取类路径下的.properties文件的key
-
jsp+java类+servlet实现文件读取、写入的功能(二)
-
jsp+java类+servlet实现文件读取、写入的功能(三)