溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

類路徑下的文件怎么利用Java進(jìn)行讀取

發(fā)布時(shí)間:2020-11-27 16:44:27 來(lái)源:億速云 閱讀:432 作者:Leah 欄目:編程語(yǔ)言

這篇文章將為大家詳細(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ò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(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)容。

AI