Java ClassLoader getSystemResourceAsStream() 方法



描述

Java ClassLoader getSystemResourceAsStream() 方法用於從用於載入類的搜尋路徑中開啟指定名稱的資源以進行讀取。

宣告

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

public static InputStream getSystemResourceAsStream(String name)

引數

name - 這是資源名稱。

返回值

此方法返回用於讀取資源的輸入流,如果找不到資源則返回 null。

異常

使用 ClassLoader 示例獲取資源作為流

以下示例演示了 java.lang.ClassLoader.getSystemResourceAsStream() 方法的使用。在此程式中,我們檢索了 ClassLoaderDemo 的類。然後使用 getClassLoader() 獲取所需的 ClassLoader。現在假設 file.txt 位於 java 程式的類路徑中,我們使用 getSystemResourceAsStream() 檢索了檔案的流內容並相應地列印了內容。

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

class ClassLoaderDemo {

   static String getSystemResource(String rsc) {
      String val = "";

      try {
         Class cls = Class.forName("com.tutorialspoint.ClassLoaderDemo");

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

         // input stream
         InputStream inputStream = cLoader.getSystemResourceAsStream(rsc);
         if(inputStream != null) {
            BufferedReader buffer = new BufferedReader(new InputStreamReader(inputStream));

            // reads each line
            String l;
            while((l = buffer.readLine()) != null) {
               val = val + l;
            } 
            buffer.close();
            inputStream.close();
         }
      } catch(Exception e) {
         System.out.println(e);
      }
      return val;
   }

   public static void main(String[] args) {
      System.out.println("File: " + getSystemResource("file.txt"));             
   }
}  

輸出

假設我們有一個文字檔案 file.txt,其內容如下:

This is TutorialsPoint!

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

File: This is TutorialsPoint! 

使用 ClassLoader 示例檢查資源作為流

以下示例演示了 java.lang.ClassLoader.getSystemResourceAsStream() 方法的使用。在此程式中,我們檢索了 ClassLoaderDemo 的類。然後使用 getClassLoader() 獲取所需的 ClassLoader。現在假設 test.txt 不在類路徑中,我們使用 getSystemResourceAsStream() 獲取流為 null 並相應地列印了訊息。

package com.tutorialspoint;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;

class ClassLoaderDemo {

   static String getSystemResource(String rsc) {
      String val = "";

      try {
         Class cls = Class.forName("com.tutorialspoint.ClassLoaderDemo");

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

         // input stream
         InputStream inputStream = cLoader.getSystemResourceAsStream(rsc);
         if(inputStream != null) {
            BufferedReader buffer = new BufferedReader(new InputStreamReader(inputStream));

            // reads each line
            String l;
            while((l = buffer.readLine()) != null) {
               val = val + l;
            } 
            buffer.close();
            inputStream.close();
         } else{
             System.out.println("File not found!");		 
		 }
      } catch(Exception e) {
         System.out.println(e);
      }
      return val;
   }

   public static void main(String[] args) {
      System.out.println("File: " + getSystemResource("test.txt"));                
   }
}  

輸出

假設我們有另一個文字檔案 test.txt,但不在類路徑中,其內容如下:

This is Java Tutorial

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

File not found!
File:

java_lang_classloader.htm
廣告