兩種getResourceAsStream()方法比較
Class.getResourceAsStream() & ClassLoader的getResourceAsStream()注意兩點(diǎn):
1,用Class.getResourceAsStream() 時(shí),路徑應(yīng)該是以"/"開頭的,如:
mypackage.Hello.class.getResourceAsStream("/config/config.ini");
2,如果直接用ClassLoader的getResourceAsStream() 不用以"/"開頭.如,
mypackage.Hello.class.getResourceAsStream("config/config.ini");
3注意文件放置的位置,應(yīng)該放在classpath下.如:工程文件中的classes下.
大家自己試試.
"ClassLoader提供了兩個(gè)方法用于從裝載的類路徑中取得資源:
public URL getResource(String name);
public InputStream getResourceAsStream(String name);
這里name是資源的類路徑,它是相對(duì)與“/”根路徑下的位置。getResource得到的是一個(gè)URL對(duì)象來(lái)定位資源,而getResourceAsStream取得該資源輸入流的引用保證程序可以從正確的位置抽取數(shù)據(jù)。
然 而,程序中調(diào)用的通常并不是ClassLoader的這兩個(gè)方法,而是Class的getResource和 getResourceAsStream方法,因?yàn)镃lass對(duì)象可以從你的類得到(如YourClass.class或 YourClass.getClass()),而ClassLoader則需要再調(diào)用一次YourClass.getClassLoader()方法,但 根據(jù)JDK文檔的說(shuō)法,Class對(duì)象的這兩個(gè)方法其實(shí)是“委托”(delegate)給裝載它的ClassLoader來(lái)做的,
posted on 2008-11-26 18:02 找個(gè)美女做老婆 閱讀(1249) 評(píng)論(0) 編輯 收藏