读取xml和properties文件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yuan_qh/article/details/83037727

.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(),等多个方法进行获取文本和属性值。

猜你喜欢

转载自blog.csdn.net/yuan_qh/article/details/83037727