读取xml和properties文件

本文详细介绍了DBCP和C3P0连接池中.properties和.xml配置文件的读取方法,包括基于Classloader、InputStream及ResourceBundle读取.properties文件,以及使用DOM4J读取.xml文件的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

.properties配置文件经常出现在DBCP连接池的使用中,我们通过读取此文件来获得1、反射须要的类名2、url 3、root 4、password

.xml 文件出现在C3P0连接池的使用中,作为配置文件,当然,C3P0也支持使用.properties 作为配置文件,我们同样须要从.xml文件中获取上述四个变量的值

那么,如何读取这两种配置文件呢?

.properties:

1、基于Classloader读取配置文件(注意:该方式只能读取类路径下的配置文件,有局限性但是如果配置文件在该类路径下就比较方便)

//使用Classloader加载properties文件生成对应的字节输入流,此路径为相对路径
InputStream in = 此类名.class.getClassLoader().getReasourceAsStream(“src/cn/itcast/demo/db.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(),等多个方法进行获取文本和属性值。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值