首先妄帘,Java中的getResourceAsStream獲取項目下的指定資源有以下幾種:?
一:獲取src下的指定資源
????1)、 Class.getResourceAsStream(String path) : path 不以’/'開頭時默認(rèn)是從此類所在的包下取資源池凄,以’/'開頭則是從ClassPath根下(即'/'代表src)獲取抡驼。其只是通過path構(gòu)造一個絕對路徑,最終還是由ClassLoader獲取資源。
? ? ? ? ? ? 例:
? ? ? ? ? ? ? ? ? ? A)坐儿、在同級目錄下:com.x.y 下有類me.class ,同時在同級目錄下有資源文件myfile.xml,則應(yīng)使用:me.class.getResourceAsStream("myfile.xml");
? ? ? ? ? ? ? ? ? ? B)楞卡、在子目錄下:例如:com.x.y 下有類me.class ,同時在 com.x.y.file 目錄下有資源文件myfile.xml,則應(yīng)該使用me.class.getResourceAsStream("file/myfile.xml");
????2)勾邦、 Class.getClassLoader.getResourceAsStream(String path) :默認(rèn)則是從ClassPath根下獲取,path不能以’/'開頭割择,最終是由ClassLoader獲取資源眷篇。
? ? ? ? ? ? 例:
? ? ? ? ? ? ? ? ? ?A)、 不在同級目錄下荔泳,也不在子目錄下:例如:com.x.y 下有類me.class ,同時在 com.x.file 目錄下有資源文件myfile.xml蕉饼,則應(yīng)該使用:me.class.getClassLoader.getResourceAsStream("com/x/file/myfile.xml");
二:獲取web項目下的指定資源
????1)、 ServletContext. getResourceAsStream(String path):默認(rèn)從WebAPP根目錄(即:要發(fā)布在服務(wù)器下的項目的根目錄(與src同級的web文件夾下))下取資源玛歌,path是否以’/'開頭無所謂;
? ? ? ? ? ?例:
? ? ? ? ? ? ? ? A)昧港、在web項目的根目錄下有myfile.xml文件,則應(yīng)該使用:
getServleContext().getResourceAsStream("myfile.xml");
????2)、Jsp下的application內(nèi)置對象就是上面的ServletContext的一種實現(xiàn)支子。