一、认识properties文件


java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties;


1、properties文件是一个文本文件












二、解读java.util.Properties类









java.util.Dictionary<K,V>



java.util.Hashtable<Object,Object>



java.util.Properties



 



从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,因此Properties类本质上是一种简单的Map容器。实际上,Properties类本身表示了对一种Map结构的操作。properties文件本身就表示了一个“键值对”的集合。因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象。以后通过别的方式给里面添加“键值对”。








通过properties文件可以填充Properties类,也可以通过xml文件来填充Properties类,还可以通过绝对路径方式加载Properties文件信息,也可以使用相对路径加载。



三、 操作properties文件的java方法 



新建一个file.properties文件,内容为:



#这是使用UTF-8编码保存的
username=张三
mypassword=12345
test=123abc会乱码吗?


新建一个ResourceBundletest 类,内容为:


import java.util.ResourceBundle;

public class ResourceBundleTest {
	public static void main(String[] args){
		ResourceBundle rb = ResourceBundle.getBundle("dgltwy.com.cn.file");  //我的文件路径:"/dgltwy/com/cn/file.properties"
		String str = (String)rb.getObject("username");   
		try {
			str = new String(str.getBytes("ISO8859-1"), "UTF-8");  //将username进行了编码转换
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println(str);
		System.out.println(rb.getObject("mypassword"));
		System.out.println(rb.getObject("test"));    //没有进行编码转换的中文会乱码
	}

}

输出结果:



张三
12345
123abc?????±?????????






利用静态快,方便数据库连接的更改(即项目发布后只需更改properties文件)



1.编写数据库连接类DataBaseManage,代码如下:



package dgltwy.com.cn.business.comm;

import java.sql.Connection;
import java.sql.DriverManager;
import java.util.ResourceBundle;

public class DataBaseManage {
	Connection conn=null;
//	String driver = "oracle.jdbc.driver.OracleDriver";
//	String url="jdbc:oracle:thin:@localhost:1521:orcl";
//	String username = "yylg";
//	String password = "12345";
	private static String driver = null;
	private static String url= null;
	private static String username = null;
	private static String password = null;
	
	static {
		ResourceBundle rb = ResourceBundle.getBundle("dbDate");	//文件所在路径,不用写后缀,我的是在"/src/dbDate.properties";
		driver = String.valueOf(rb.getObject("driver"));
		url = String.valueOf(rb.getObject("url"));
		username = String.valueOf(rb.getObject("username"));
		password = String.valueOf(rb.getObject("password"));
		System.out.println("用户和密码 : "+username+" ; "+password);
	}
	
	public Connection getConnection() throws Exception{
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, username, password);
			System.out.println("数据库连接成功..");
		} catch (ClassNotFoundException ex) {
			System.out.println("数据库连接失败!");
			ex.printStackTrace();
			throw ex;
		}
		return conn;
	}
	
	public static void main(String []args) throws Exception{
		Connection conn = new DataBaseManage().getConnection();
		System.out.println("conn = "+conn);
	}
}



编写

properties文件dbDate. properties,内容为:


#配置JDBC的参数(有中文的话注意编码问题)
driver = oracle.jdbc.driver.OracleDriver
url = jdbc:oracle:thin:@localhost:1521:orcl
username = yylg
password =12345

执行类文件得到结果:



用户和密码 : yylg ; 12345
数据库连接成功..
conn = oracle.jdbc.driver.T4CConnection@10c832d2

参考博客:http://trans.blog.51cto.com/503170/110227/ 及: