JAVA 使用properties配置文件

原创 2015年11月17日 18:15:10

在工程中,创建一个配置文件,例如,命名为 database.properties 注意后缀为properties 千万不要写成propertise,很像对不对

将文件放在src/main/resources下

文件内容

##############################
#数据库IP及端口信息
##############################
mysql.driver=com.mysql.jdbc.Driver
mysql.jndi=jdbc:mysql://
mysql.ip=192.168.1.1
mysql.port=3388

##############################
#数据库的数据库名
##############################
mysql.dbname=qatest

##############################
#数据库的登录名及密码
##############################
mysql.username=qatest
mysql.password=qatest

##############################
#数据库的辅助设置
#包括编码级别等信息
##############################
mysql.useUnicode=true
mysql.characterEncoding=utf-8


然后就可以读取文件,获取配置信息,废话不说,直接代码

import java.util.Properties;
import java.util.HashMap;
import java.util.Enumeration;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import org.apache.log4j.Logger;

import com.qa.ballon.api.util.U_Customed_Exception;


public class U_File_Properties {
	private static Logger logger = Logger.getLogger(U_File_Properties.class);
	public static HashMap<String,String> dbproperties = new HashMap<String, String>();
	//用于获取数据库配置文件的各项信息
	public void M_get_db_propertise(String propath,String dbtype) throws U_Customed_Exception{
		Properties dbprop = new Properties();
		try{
			InputStream ins = getClass().getResourceAsStream(propath);
			dbprop.load(ins);
			logger.info("the database.propertise has got successfully!!");
		}catch(Exception e){
			logger.error("the database.propertise has some problems!!");
			e.printStackTrace();
		}
		if(dbtype.equals("mysql"))
		{
			try {
				dbproperties.put("mysql.ip", dbprop.getProperty("mysql.ip"));
				dbproperties.put("mysql.port", dbprop.getProperty("mysql.port"));
				dbproperties.put("mysql.dbname", dbprop.getProperty("mysql.dbname"));
				dbproperties.put("mysql.username", dbprop.getProperty("mysql.username"));
				dbproperties.put("mysql.password", dbprop.getProperty("mysql.password"));
				dbproperties.put("mysql.useUnicode", dbprop.getProperty("mysql.useUnicode"));
				dbproperties.put("mysql.characterEncoding", dbprop.getProperty("mysql.characterEncoding"));
				logger.info("the database info has got successfully!!");
			} catch (Exception e) {
				// TODO: handle exception
				logger.error("Failed to collect database info,please check the keyword and values!!");
				e.printStackTrace();
			}
		}else {
			logger.error("no such type of database then~~~ dbtype you gived is "+dbtype);
			throw new U_Customed_Exception("no such type of database!! the type of database you gived is "+dbtype);
		}
		
	}
	
	public static void main(String[] args) throws Exception{
		U_File_Properties ufp = new U_File_Properties();
		System.out.println(System.getProperty("user.dir"));
		ufp.M_get_db_propertise("/database.properties","mysql");
		System.out.println(ufp.dbproperties);
	}
	
}

输出结果如下:

</pre><pre name="code" class="vb">2015-11-17 18:06:11,146  INFO main (com.qa.ballon.api.util.U_File_Properties:28)  - the database.propertise has got successfully!!

 2015-11-17 18:06:11,146  INFO main (com.qa.ballon.api.util.U_File_Properties:43)  - the database info has got successfully!!

 {mysql.password=qatest, mysql.username=qatest, mysql.characterEncoding=utf-8, mysql.useUnicode=true, mysql.dbname=qatest, mysql.port=3388, mysql.ip=192.168.1.1}


通过迭代的方式可以获取到properties中的全部内容

//获取properties全部信息
    public static void getProperties(String filePath) {
     Properties props = new Properties();
        try {
         InputStream ins = new BufferedInputStream (new FileInputStream(filePath));
         props.load(ins);
            Enumeration propen = props.propertyNames();
             while (propen.hasMoreElements()) {
              String propkey = (String) propen.nextElement();
                    String propekeyval = props.getProperty (propkey);
                    System.out.println(propkey+propkeyval);
                }
        } catch (Exception e) {
         e.printStackTrace();
        }
    }





相关文章推荐

使用java读取配置文件(ini、properties)

JDK自带的Properties可以读取properties类型的文件,但是对于ini文件进行读取时遇到转义字符时会有问题,例如当遇到STOREPATH = d:\test\,用Properties类...

log4j的使用与java中properties配置文件加载

日志是我们在写代码中经常会用到的,程序出错了我们也需要去查看日志来调错,对于像我们这一些新人来说,怎么去使用日志就比较陌生,下面我将我学习的过程分享一下: 1.需要找到一个log4j包,我使用的是l...

使用java.util.Properties类读写配置文件

J2SE 1.5以前的版本要求直接使用XML解析器来装载配置文件并存储设置,虽说也并非难事,相比java.util.Properties却要做额外的解析工作。而java.util.Properties...

java对properties配置文件的读和写

  • 2015年01月27日 23:05
  • 27KB
  • 下载

Java 读写Properties配置文件

转自: http://www.cnblogs.com/xudong-bupt/p/3758136.html 1.Properties类与Properties配置文件   Propertie...

使用Properties类来读取配置文件

  • 2017年10月27日 20:36
  • 227KB
  • 下载

Java Web项目如何读取.properties配置文件

在幼儿园管理系统中,为了实现在线预览功能,就使用OpenOffice+SwfTools+Flexpaper技术,在使用的时候,代码里面要配置工具的安装路径(绝对路径),为了方便后期维护该路径。现将该相...

java中读取properties配置文件中的内容的三种方式

一种是在xml文件中读取: properties(config.properties)文件内容为(连接mysql数据库的例子): debug = false recomArticleMaxCount ...

Java实现properties配置文件加密解密

Java实现properties配置文件加密解密 在 JavaEE 配置文件中,例如 XML 或者 properties 文件,由于某些敏感信息不希望普通人员看见,则可以采用加密的方式存储,程序读...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 使用properties配置文件
举报原因:
原因补充:

(最多只允许输入30个字)