如何读取properties文件中属性
来源:互联网 发布:不需要网络的电脑游戏 编辑:程序博客网 时间:2024/05/16 13:42
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据我工作中用到的读取properties配置文件的方法小小总结一下,主要叙述的是spring读取配置文件的方法。
用spring读取配置文件,最典型的就是关于数据库的连接,下面就是一个例子:
文件database.properties:
-------------------------------------------------------------------------------------
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/zjgxm?charset=utf-8
jdbc.username=root
jdbc.password=111111
#<!-- 初始化连接 -->
dataSource.initialSize=5
#<!-- 最大空闲连接 0为最大 -->
dataSource.maxIdle=0
#<!-- 最小空闲连接 -->
dataSource.minIdle=5
#最大连接数量
dataSource.maxActive=50
#是否在自动回收超时连接的时候打印连接的超时错误
dataSource.logAbandoned=true
#是否自动回收超时连接
dataSource.removeAbandoned=true
#超时时间(以秒数为单位)
dataSource.removeAbandonedTimeout=180
#<!-- 超时等待时间以毫秒为单位 6000毫秒/1000等于60秒 -->
dataSource.maxWait=1000
------------------------------------------------------------------------------------
引入spring的相关jar包,在applicationContext.xml中配置:
-------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <value>classpath:database.properties</value> </property> </bean> <bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}"/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> <property name="initialSize" value="${dataSource.initialSize}"/> <property name="maxIdle" value="${dataSource.maxIdle}"/> <property name="minIdle" value="${dataSource.minIdle}"/> <property name="maxActive" value="${dataSource.maxActive}"/> <property name="logAbandoned" value="${dataSource.logAbandoned}"/> <property name="removeAbandoned" value="${dataSource.removeAbandoned}"/> <property name="removeAbandonedTimeout" value="${dataSource.removeAbandonedTimeout}"/> <property name="maxWait" value="${dataSource.maxWait}"/> </bean> <import resource="spring-conf/spring-admin.xml"/> </beans>
-----------------------------------------------------------------------------------------
DataDAO.java
package com.zh.model;
import javax.sql.DataSource;
public class DataDAO {
private DataSource datasource;
public DataSource getDatasource() {
return datasource;
}
public void setDatasource(DataSource datasource) {
this.datasource = datasource;
}
}
------------------------------------------------------------------------------------
测试连接是否成功,test.java
package com.zh.logic;
import java.sql.Connection;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
import com.zh.model.DataDAO;
public class test {
public static void main(String [] args){
try{
String[] path = {"spring.xml"};
ApplicationContext ctx = new FileSystemXmlApplicationContext(path);
DataDAO dao = (DataDAO)ctx.getBean("dao");
Connection con = dao.getDatasource().getConnection();
System.out.println(con.isClosed());
//System.out.print(dao.getName());
}catch(Exception ex){
ex.printStackTrace();
}
}
}
-------------------------------------------------------------------------------------
2.用java.util.Properties这个类来读取
比如,我们构造一个ipConfig.properties来保存服务器ip地址和端口,如:
ip=192.168.0.1
port=8080
--------------------------------------------------------------------------------------
则,我们可以用如下程序来获得服务器配置信息:
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("database.properties");
Properties p = new Properties();
try{
p.load(inputStream);
} catch (IOException e1){
e1.printStackTrace();
}
System.out.println("url:"+p.getProperty("jdbc.url")+"username"+p.getProperty("jdbc.username"));
--------------------------------------------------------------------------------------
上面介绍了读取properties的内容,现实中我们还有可能要修改文件的内容,下面就看下怎么修改properties的内容,文件还是上面那个:
package com.zh.logic;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Properties;
public class TestRead {
public void read(){
try {
InputStream in = this.getClass().getClassLoader().getResourceAsStream("config/host.properties");
Properties p = new Properties();
p.load(in);
//p.list(System.out);
System.out.println(p.getProperty("ip")+","+p.getProperty("username")+","+p.getProperty("pwd"));
} catch (Exception e) {
e.printStackTrace();
}
}
public void update(String path){
try{
Properties p = new Properties();
FileInputStream in = new FileInputStream(path);
p.load(in);
FileOutputStream out = new FileOutputStream(path);
p.setProperty("ip","1234567");
p.store(out,"ip update");
//p.save(out,"ip updated");
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String[] args){
TestRead td = new TestRead();
td.read();
td.update("config/host.properties");
td.read();
}
}
可以看见修改之前的和修改之后的内容有改变;在上面有点要注意的:
FileInputStream in = new FileInputStream(path);
p.load(in);
FileOutputStream out = new FileOutputStream(path);
就是p.load(in);要写在FileOutputStream out = new FileOutputStream(path);之前,不然的话,修改后的文件内容就成了ip=1234567,而port=8080这句被覆盖了;
方法3:
package com.util;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class DBUtil {public static void main(String[] args){ DBUtil db = new DBUtil(); db.readProperties(); }public void readProperties(){ try { Properties props = new Properties(); //第一种读取 properties 方法 props.load(getClass().getResourceAsStream("/config/oracleConn.properties")); //------------------------------------------------------------- //读取键值 String oracle_url = props.getProperty("oracle_url"); String oracle_name = props.getProperty("oracle_name"); String oracle_user = props.getProperty("oracle_user"); String oracle_pwd = props.getProperty("oracle_pwd"); Class.forName("oracle.jdbc.driver.OracleDriver"); //加载oracle驱动 Connection conn = DriverManager.getConnection(oracle_url,oracle_user,oracle_pwd); System.out.println(conn); conn.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }}}
引自:http://hi.baidu.com/alizv/item/358543e1b6ad2df32a09a426
- 如何读取properties文件中属性
- Java系列-如何读取.properties属性文件
- 从properties文件中读取属性
- spring中属性文件properties的读取
- 读取属性文件*.properties
- java中如何读取properties文件
- 如何读取properties文件
- spring 中如何读取properties的中属性信息
- spring中无法读取properties文件中属性的解决方法
- spring 读取properties属性文件
- java读取properties属性文件
- 读取properties文件和属性
- java读取properties属性文件
- java 读取 properties 属性文件
- java 读取属性文件 properties
- java读取Properties属性文件
- java从properties文件中读取和写入属性
- Spring中属性文件properties的读取与使用
- SpringJdbc的应用举例
- [Win32]一个调试器的实现(七)断点
- C语言 计算水仙花数
- Linux查看系统硬盘内存及开机信息的命令
- Linux操作系统常用命令
- 如何读取properties文件中属性
- Servlet实现文件的上传
- JS传中文乱码解决方法
- table自动隐藏过长的字符
- 正则表达式验证系统登录密码必须由字母数字和特殊符号组成
- 前端jsp中处理特殊字符方法总结
- IE和Chrome样式兼容性问题
- oracle数据库数据量较大时更新数据较慢问题
- 首页展示flash(IE和GOOGLE兼容)