您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)類路徑下的文件怎么利用Java進(jìn)行讀取,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
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")); } /** * 根據(jù)Class加載資源文件 * * @param clazz * @param path * 以'/'開(kāi)頭的路徑: 使用絕對(duì)路徑尋找文件(以ClassPath為根路徑開(kāi)始)<br> * 否則: 使用相對(duì)路徑尋找文件(相對(duì)于clazz位置路徑開(kāi)始) * @return */ public static InputStream loadResourceByClazz(Class<?> clazz, String path) { return clazz.getResourceAsStream(path); } /** * 根據(jù)ClassLoader加載資源文件(單個(gè)), 使用默認(rèn)的ClassLoader! * * @param path * 不能以'/'開(kāi)頭的路徑 * @return */ public static InputStream loadResourceByClassLoader(String path) { return loadResourceByClassLoader(null, path); } /** * 根據(jù)ClassLoader加載資源文件(單個(gè)), 使用默認(rèn)的ClassLoader! * * @param path * 不能以'/'開(kāi)頭的路徑 * @return */ public static InputStream loadResourceByClassLoader(ClassLoader cl, String path) { if (cl == null) { cl = Thread.currentThread().getContextClassLoader(); } return cl.getResourceAsStream(path); } /** * 根據(jù)ClassLoader加載資源文件(多個(gè)),使用默認(rèn)的ClassLoader! * * @param path * 不能以'/'開(kāi)頭的路徑 * @return */ public static List<URL> loadResourcesByClassLoader(String path) { return loadResourcesByClassLoader(null, path); } /** * 根據(jù)ClassLoader加載資源文件(多個(gè)),使用指定的ClassLoader! * * @param path * 不能以'/'開(kāi)頭的路徑 * @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; } }
二、執(zhí)行結(jié)果
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]
關(guān)于類路徑下的文件怎么利用Java進(jìn)行讀取就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。