溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法

發(fā)布時間:2021-02-05 15:20:32 來源:億速云 閱讀:420 作者:Leah 欄目:開發(fā)技術

本篇文章為大家展示了如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

1. Class.getResourceAsStream(String path) : path 不以'/'開頭時默認是從此類所在的包下取資源,以'/'開頭則是從ClassPath根下獲取。其只是通過path構造一個絕對路徑,最終還是由ClassLoader獲取資源。

2. Class.getClassLoader.getResourceAsStream(String path) :默認則是從ClassPath根下獲取,path不能以'/'開頭,最終是由ClassLoader獲取資源。

然而,對于這個解釋,說實話,不是很明白,對我的幫助不是很大,后面我在別人的博客方法的基礎上,瞎搞了幾下,終于,我的背景音樂響起來了,不容易啊

以下是在b站上學的一段完整代碼,很簡單的一個功能,就是一直循環(huán)播放背景音樂,而這段代碼最容易出錯的地方,我覺得就是這個getResourceAsStream()方法了

import javax.sound.sampled.*;
import java.io.IOException;
import java.io.InputStream;
 
public class Test_2 {
  public static void main(String[] args) throws LineUnavailableException, IOException, UnsupportedAudioFileException {
    Clip bgm = AudioSystem.getClip();
    InputStream is = Test_2.class.getClassLoader().getResourceAsStream("music/bgm.wav");
    System.out.println(is);
    AudioInputStream ais = AudioSystem.getAudioInputStream(is);
    bgm.open(ais);
    bgm.loop(Clip.LOOP_CONTINUOUSLY);
    while (true){
 
    }
  }
}

如果大家存放資源的文件夾,是一個普通文件夾的話,即如圖所示:

如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法

則上面getResourceAsStream()方法必然會報空指針異常,具體原因我也不是很明白,而要解決異常,就要將該文件夾設置為可以存放源代碼的文件夾,也即eclipse中的Source Folder,而我這里是idea,沒有這個選項,所以需手動設置,我的方法是:

1,選中并右鍵單擊File ==> Project Structure...

如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法

以下是打開的界面:

如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法

2, 如下圖所示

①選中存放資源的文件夾,我這里是 resource(名稱可自定義)

②選中 Mark as: 這一欄的 Sources

③點擊apply

④點擊ok

如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法

最后resource文件夾會變?yōu)樗{色(resource目錄此時就相當于另一個src目錄),music文件夾變?yōu)閜ackage ,說明修改成功

如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法

上述內(nèi)容就是如何在IDEA中利用類加載器調(diào)用getResourceAsStream()方法,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI