Java中getResourceAsStream的用法小結

Java中getResourceAsStream的用法小結 app

1、Java中的getResourceAsStream主要有如下三種用法:
一、Class.getResourceAsStream(String path)  spa

    path 不以’/'開頭時默認是今後類所在的包下取資源,以’/'開頭則是從ClassPath根下獲取。 xml

    實際上是經過path構造一個絕對路徑,最終仍是由ClassLoader獲取資源。 對象

二、Class.getClassLoader.getResourceAsStream(String path)  資源

    默認則是從ClassPath根下獲取,path不能以’/'開頭,最終是由ClassLoader獲取資源。 get

三、ServletContext.getResourceAsStream(String path) io

    默認從WebAPP根目錄下取資源,Tomcat下path是否以’/'開頭無所謂,固然這和具體的容器實現有關。 class

    Jsp下的application內置對象就是上面的ServletContext的一種實現。 容器

2、用法示例 file

    1:要加載的文件和.class文件在同一目錄下,例如:com.x.y 下有類me.class ,同時有資源文件myfile.xml那麼,應該有以下代碼:

    me.class.getResourceAsStream("myfile.xml");

     2: 在me.class目錄的子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.y.file 目錄下有資源文件myfile.xml  那麼,應該有以下代碼:

    me.class.getResourceAsStream("file/myfile.xml");

    3:
不在me.class目錄下,也不在子目錄下,例如:com.x.y 下有類me.class ,同時在 com.x.file 目錄下有資源文件myfile.xml, 那麼,應該有以下代碼:

    me.class.getResourceAsStream("/com/x/file/myfile.xml");

    總結一下,可能只是兩種寫法

    一、前面有 「 / 」,「 / 」表明了工程的根目錄

    二、前面沒有 「/」,表明當前類的目錄

相關文章
相關標籤/搜索