热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

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为根路径开始)
* 否则: 使用相对路径寻找文件(相对于clazz位置路径开始) * @return */ public static InputStream loadResourceByClazz(Class<&#63;> 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 loadResourcesByClassLoader(String path) { return loadResourcesByClassLoader(null, path); } /** * 根据ClassLoader加载资源文件(多个),使用指定的ClassLoader! * * @param path * 不能以'/'开头的路径 * @return */ public static List loadResourcesByClassLoader(ClassLoader cl, String path) { if (cl == null) { cl = Thread.currentThread().getContextClassLoader(); } List urlLst = new ArrayList(); try { Enumeration 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] 

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


推荐阅读
author-avatar
手机用户2502920971
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有