Java ClassLoader getResource() 方法



描述

Java ClassLoader getResource() 方法查詢具有給定名稱的資源。資源是一些資料(影像、音訊、文字等),類程式碼可以以獨立於程式碼位置的方式訪問這些資料。資源的名稱是一個用“/”分隔的路徑名,用於標識資源。

宣告

以下是java.lang.ClassLoader.getResource() 方法的宣告

public URL getResource(String name)

引數

name − 這是資源名稱。

返回值

此方法返回用於讀取資源的 URL 物件,如果找不到資源或呼叫者沒有足夠的許可權獲取資源,則返回 null。

異常

從類路徑獲取資源示例

以下示例演示了 java.lang.ClassLoader.getResource() 方法的用法。在這個程式中,我們檢索了 ClassLoaderDemo 的類。然後使用 getClassLoader(),我們獲取所需的 ClassLoader 並使用 getClass() 列印類載入器類。現在假設 file.txt 位於 java 程式的類路徑中,我們使用 getResource() 方法檢索檔案的 URL 並列印它。

package com.tutorialspoint;

import java.net.URL;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("com.tutorialspoint.ClassLoaderDemo");

      // returns the ClassLoader object associated with this Class
      ClassLoader cLoader = cls.getClassLoader();
    
      System.out.println(cLoader.getClass());
    
      // finds resource
      URL url = cLoader.getResource("file.txt");
      System.out.println("Value = " + url);
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

class jdk.internal.loader.ClassLoaders$AppClassLoader
Value = file:/C:/Users/Tutorialspoint/eclipse-workspace/Tutorialspoint/lib/file.txt

從類路徑檢查資源示例

以下示例演示了 java.lang.ClassLoader.getResource() 方法的用法。在這個程式中,我們檢索了 ClassLoaderDemo 的類。然後使用 getClassLoader(),我們獲取所需的 ClassLoader 並使用 getClass() 列印類載入器類。現在假設 a.txt 不在類路徑中,我們使用 getResource() 方法檢索檔案的 URL 為 null 並列印它。

package com.tutorialspoint;

import java.net.URL;

public class ClassLoaderDemo {

   public static void main(String[] args) throws Exception {
     
      Class cls = Class.forName("com.tutorialspoint.ClassLoaderDemo");

      // returns the ClassLoader object associated with this Class
      ClassLoader cLoader = cls.getClassLoader();
    
      System.out.println(cLoader.getClass());

      // finds resource
      URL url = cLoader.getResource("newfolder/a.txt");
      System.out.println("Value = " + url);  
   }
} 

輸出

讓我們編譯並執行上述程式,這將產生以下結果:

class jdk.internal.loader.ClassLoaders$AppClassLoader
Value = null
java_lang_classloader.htm
廣告