讀取xml和properties檔案
.properties配置檔案經常出現在DBCP連線池的使用中,我們通過讀取此檔案來獲得1、反射須要的類名2、url 3、root 4、password
.xml 檔案出現在C3P0連線池的使用中,作為配置檔案,當然,C3P0也支援使用.properties 作為配置檔案,我們同樣須要從.xml檔案中獲取上述四個變數的值
那麼,如何讀取這兩種配置檔案呢?
.properties:
1、基於Classloader讀取配置檔案(注意:該方式只能讀取類路徑下的配置檔案,有侷限性但是如果配置檔案在該類路徑下就比較方便)
InputStream in = 此類名.class.getClassLoader().getReasourceAsStream(“src/cn/itcast/demo/db.properties”);使用Classloader載入properties檔案生成對應的位元組輸入流,此路徑為相對路徑
Properties pro = new Properties();
pro.load(in);//通過properties物件載入輸入流
DataSource datasource = BasicDataSourceFactory.createDataSource(pro);//直接用pro物件來建立連線池
2、基於InputStream讀取配置檔案(此方法在於可以讀取任意路徑下的配置檔案)
BufferedReader br = new BufferedReader(new FileReader("E:/db.properties"))//用BufferedReader來讀取配置檔案,此路徑為絕對路徑
Properties pro = new Properties();
pro.load(br);//通過properties物件載入輸入流
DataSource datasource = BasicDataSourceFactory.createDataSource(pro);//直接用pro物件來建立連線池
3、通過java.util.ResourceBunder類來讀取,這種方法讀取配置檔案比使用Properties類要方便一點,但是建立連線池的話,還是用Properties類比較方便。
- 通過ResourceBunder.getBunder()靜態方法來獲取(相對路徑)
ResourceBunder rb = ResourceBunder.getBunder("cn/itcast/demo/db");
ResourceBunder是一個抽象類,這種方法獲取配置檔案不需要加.properties字尾名,只需要檔名即可
db為檔名,放在包cn.itcast.demo包下,如果是放在src下,則直接用db即可。
driver = rb.getString("driver");
url=rb.gerString("url");
username=getString("username");
password=getString("password");
//建立連線池
BasicDataSource ds = new BasicDataSource();
//配置資訊
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
2.從InputStream中讀取,獲取InputStream方法和上述方法一樣,不再贅述
ResourceBunder rb = new PropertyResourceBunder(inStream);
xml:
1、以DOM4J的方式實現對xml檔案的讀取
import org.dom4j.*;
SAXReader sr = new SAXReader();
Document doc = sr.read("src/cn/itcast/demo/web.xml");
Element rootelem = doc.getRootElement();
然後通過根結點呼叫getElements();查詢想要的子結點,然後通過子結點基礎找子結點,直至找到需要的結點
然後呼叫getText()方法,attributeValue(),等多個方法進行獲取文字和屬性值。