java 加载资源文件
ClassLoader提供了兩個方法用于從裝載的類路徑中取得資源:
public URL getResource(String name);
public InputStream getResourceAsStream(String name);
這里name是資源的類路徑,它是相對與“/”根路徑下的位置。getResource得到的是一個URL對象來定位資源,而getResourceAsStream取得該資源輸入流的引用保證程序可以從正確的位置抽取數據。
然而,程序中調用的通常并不是ClassLoader的這兩個方法,而是Class的getResource和getResourceAsStream方法,因為Class對象可以從你的類得到(如YourClass.class或YourClass.getClass()),而ClassLoader則需要再調用一次YourClass.getClassLoader()方法,但根據JDK文檔的說法,Class對象的這兩個方法其實是“委托”(delegate)給裝載它的ClassLoader來做的,所以只需要使用Class對象的這兩個方法就可以了。
舉例說明:
mypackage.Hello.class.getResourceAsStream("/config/config.ini");
從classpath下的config相對路徑中讀取config.ini
另外一篇
protected InputStream getConfigurationInputStream(String resource) throws HibernateException {
InputStream stream = Environment.class.getResourceAsStream(resource);
if (stream==null) {
throw new Exception(resource + " not found");
}
return stream;
}
client應該這么寫:
//hibernate.cfg.xml位于classes目錄下(classPath目錄)
InputStream stream = getConfigurationInputStream("/hibernate.cfg.xml");
如果資源是.property的配置文件,則可以這么裝載
Properties property=new Properties();
property.load(stream);
總起來可以這么寫:
public Properties getPropFromFile(String filePath){
InputStream stream = Environment.class.getResourceAsStream(resource);
if (stream==null) {
throw new Exception(resource + " not found");
}
Properties property=new Properties();
property.load(stream);
return stream;
}
轉載于:https://www.cnblogs.com/xinzhuangzi/archive/2010/08/15/4100561.html
總結
以上是生活随笔為你收集整理的java 加载资源文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1. 喵喵宠物管理系统需求分析
- 下一篇: Workflow WF Referenc