ホームページ > Java > &#&チュートリアル > Javaでクラスパス下のリソースファイルを読み取るコード例を実装する方法

Javaでクラスパス下のリソースファイルを読み取るコード例を実装する方法

黄舟
リリース: 2017-07-27 15:25:44
オリジナル
1662 人が閲覧しました

この記事では、主にクラスパス下のリソースファイルを読み取るJavaの実装コードに関する関連情報を紹介します。主要な実装ツールのクラスコードResourceLoadUtil.javaの例が必要な友人は、それを参照してください

クラス下のリソースファイルを読み取るJava。パス実装コード

1. ツールコード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 
   *      以&#39;/&#39;开头的路径: 使用绝对路径寻找文件(以ClassPath为根路径开始)<br> 
   *      否则: 使用相对路径寻找文件(相对于clazz位置路径开始) 
   * @return 
   */ 
  public static InputStream loadResourceByClazz(Class<?> clazz, String path) { 
    return clazz.getResourceAsStream(path); 
  } 
 
  /** 
   * 根据ClassLoader加载资源文件(单个), 使用默认的ClassLoader! 
   * 
   * @param path 
   *      不能以&#39;/&#39;开头的路径 
   * @return 
   */ 
  public static InputStream loadResourceByClassLoader(String path) { 
    return loadResourceByClassLoader(null, path); 
  } 
 
  /** 
   * 根据ClassLoader加载资源文件(单个), 使用默认的ClassLoader! 
   * 
   * @param path 
   *      不能以&#39;/&#39;开头的路径 
   * @return 
   */ 
  public static InputStream loadResourceByClassLoader(ClassLoader cl, String path) { 
    if (cl == null) { 
      cl = Thread.currentThread().getContextClassLoader(); 
    } 
    return cl.getResourceAsStream(path); 
  } 
 
  /** 
   * 根据ClassLoader加载资源文件(多个),使用默认的ClassLoader! 
   * 
   * @param path 
   *      不能以&#39;/&#39;开头的路径 
   * @return 
   */ 
  public static List<URL> loadResourcesByClassLoader(String path) { 
    return loadResourcesByClassLoader(null, path); 
  } 
 
  /** 
   * 根据ClassLoader加载资源文件(多个),使用指定的ClassLoader! 
   * 
   * @param path 
   *      不能以&#39;/&#39;开头的路径 
   * @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. 実行結果


以上がJavaでクラスパス下のリソースファイルを読み取るコード例を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート