`

如何读取properties文件中属性

 
阅读更多

在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,本文根据我工作中用到的读取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.xsd
		http://www.springframework.org/schema/aop
		http://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

分享到:
评论

相关推荐

    Python实现读取Properties配置文件的方法

    主要介绍了Python实现读取Properties配置文件的方法,结合实例形式分析了Python读取Properties配置文件类的定义与使用相关操作技巧,需要的朋友可以参考下

    java完美公共方法读取properties文件的值

    最高效,最简洁的读取properties文件的源码。二十行以内,需导入log4j包。 将文件代码拷贝到你的工程,如果提示你找不到 import org.apache.log4j.Logger; 直接点击该错误,选择自动添加log4j包。即可.....祝你好运...

    ResourceBundle与Properties读取maven中resources目录下的资源文件

    这里面有详细的处理maven项目中resources目录下的资源文件,方便快捷的得到或设置资源文件中的内容,本人亲测,里面还有示例

    读取properties、xml格式的配置文件的实例

    这是一个简单实现读取properties、xml格式的配置文件的小案例。虽然实际项目中可能不是这样实现的。作为了解也是不错的。 一、读取properties类型文件 方法一:java.util.ResourceBundle读取properties类型文件; ...

    详解Java项目中读取properties文件

    本篇文章主要介绍了Java项目中读取properties文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

    eclipse-properties文件插件

    在Struct2在读取语言包文件language.properties属性文件,如果文件中包含中文,会出现乱码。虽然可以native2ascii进行解决,但是使用起来不方便,为了解决这个问题,可以为Eclipse安装Properties Editor插件解决这个...

    Java_Properties_类读取配置文件信息

    在我们平时写程序的时候,有些参数是经常改变的,而这种改变不是我们预知的。...而在Java 中,Java 支持的是.properties 文件的读写。JDK 内置的java.util.Properties 类为我们操作.properties 文件提供了便利。

    java简单读取properties配置文件的方法示例

    主要介绍了java简单读取properties配置文件的方法,涉及java针对properties配置的载入及文件属性读取相关操作技巧,需要的朋友可以参考下

    java读取属性文件

    java读取属性文件,自己写的一个小例子,给大家参考参考..

    读取properties文件>>propertiesUtil工具类

    最近面试java开发,遇到很是蛋疼一道题。题目是写一个java程序批量读取properties文件的数据,按照每列属性每行每行读出来,由于很久都没写过工具类 回来复习了一下简单写了个工具类有兴趣可以看看。

    java读取properties属性文件

    NULL 博文链接:https://softwarexiang120.iteye.com/blog/1490883

    java属性文件读取

    读取自定义属性文件内容,可以自己定义属性文件的名字,任何路径都可以

    java properties文件读取

    这是做项目中,集成第三东西需要些配置,我抽取到属性文件中,然后写了个公用类统一调用,基本就是key返回具体值,属性文件位置自己可以调整,然后类中修改获取路径就可以了。目前我的属相文件放置在src下

    Android读取properties配置文件的实例详解

    主要介绍了Android读取properties配置文件的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下

    使用java读写properties文件属性

     我们要做的第一步是要将文件读取到Properties类对象中,由于load有一个参数是InputStream,所以我们可以用 InputStream的子类FileInputStream将属性文件读取到Properties对象中,知道prop.properties的路径,我们...

    properties:Node.js的属性读取器

    属性阅读器用于与ini文件兼容的属性阅读器安装最简单的安装是通过 : npm install properties-reader原料药从文件读取属性: var propertiesReader = require('properties-reader');var properties = ...

    Spring中属性文件properties的读取与使用详解

    主要介绍了Spring中属性文件properties的读取与使用详解的相关资料,需要的朋友可以参考下

    基于属性文件的读取类

    这是一个读取properties的类,用处挺大的 大家注意点就是这个properties是实现 map接口--继承Hashtable类!

    java获取properties属性文件示例

    Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。本文使用java读取这些属性,看下面详细介绍吧

    read-properties:Github操作读取Java属性文件

    read-properties:Github操作读取Java属性文件

Global site tag (gtag.js) - Google Analytics