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();
        }
    }




properties配置文件的简单使用

作为刚进入程序员领域的新新人,有很多技术不懂,在日常工作中遇到不懂的方面就只能求助度娘了。不定期写些博客,记录在工作遇到问题后自己学习的情况。 *.properties是一种配置文件,在ja...
  • flinhun
  • flinhun
  • 2015年04月24日 13:39
  • 2092

Java配置文件Properties的读取、写入与更新操作

在做中央库管理系统时经理要求我写一个关于配置文件的读写与更新的功能,刚开始以为很简单,可是在写的时候不同情况下文件路径的写法以及读取时缓存问题整的我晕头转向,花了好长时间才调试好,这里针对配置文件读写...
  • a128953ad
  • a128953ad
  • 2016年02月17日 17:49
  • 9019

工厂模式基于properties配置文件

工厂模式的概念就不讨论了,本文介绍一种通过
  • xjh2011xjh
  • xjh2011xjh
  • 2014年05月11日 13:56
  • 863

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

一种是在xml文件中读取: properties(config.properties)文件内容为(连接mysql数据库的例子): debug = false recomArticleMaxCount ...
  • west_three_boy
  • west_three_boy
  • 2017年05月23日 11:25
  • 1528

properties 配置文件中值换行的问题

在使用properties配置文件的时候我们经常碰到如下两个问题 1:当a=b中的b值内容特别长的时候为了阅读方便我们手动换行,但如果我们直接回车那么后面的数据就会丢失。那如何解决呢? 例如: ...
  • candyguy242
  • candyguy242
  • 2015年03月31日 18:26
  • 4920

jdbc基础 (二) 通过properties配置文件连接数据库

上一篇描述了对mysql数据库的简单操作,下面来看一下开发中应该如何灵活应用。 因为jdbc对数据库的驱动加载、连接获取、释放资源的代码都是相同的,为了提高代码的复用性,我们可以写一个工具类,将数据...
  • u013805360
  • u013805360
  • 2015年05月13日 14:08
  • 6745

java spring中对properties属性文件加密及其解密

java spring中对properties属性文件加密及其解密,代码下载地址:http://www.zuidaima.com/share/1781588957400064.htm...
  • yaerfeng
  • yaerfeng
  • 2014年05月22日 10:06
  • 9971

Java Web读取properties配置文件

java action读取src目录下的properties配置文件。 mailServer.properties配置文件如下: mailServerHost = smtp.163.com...
  • xumengxing
  • xumengxing
  • 2013年06月22日 23:29
  • 14929

关于properties配置文件读写,追加以及中文乱码问题

在开发中常用properties文件来存储系统配置信息,下面就properties文件的读写,信息追加作简要介绍,顺便也解决乱码问题。 1、首先介绍一下properties类 properties...
  • ttx_laughing
  • ttx_laughing
  • 2016年10月19日 16:24
  • 2362

JAVA国际化及properties文件的使用

1.在editPlus里进行JAVA国际化还是比较麻烦的,有以下步骤: (1)新建一系列的.properties文件,就是我们所谓的资源文件,资源文件一般命名方式为: baseName_Languag...
  • qian_123456
  • qian_123456
  • 2014年12月06日 10:44
  • 4070
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA 使用properties配置文件
举报原因:
原因补充:

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