1. 程式人生 > >讀取xml和properties檔案

讀取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類比較方便。

  1. 通過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(),等多個方法進行獲取文字和屬性值。