您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關類路徑下的文件怎么利用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進行讀取就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。