In diesem Artikel werden hauptsächlich relevante Informationen zum Java-Implementierungscode zum Lesen von Ressourcendateien unter dem Klassenpfad vorgestellt. Freunde, die Beispiele für den Klassencode des Hauptimplementierungstools ResourceLoadUtil.java benötigen, können sich auf
Java beziehen Lesen Sie den Implementierungscode der Ressourcendatei unter dem Klassenpfad
1. Tool-Klassencode 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; } }
2. Ausführungsergebnisse
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]
Das obige ist der detaillierte Inhalt vonSo implementieren Sie ein Codebeispiel zum Lesen von Ressourcendateien unter dem Klassenpfad in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!