本帖最后由 朱晓杰 于 2013-5-13 21:12 编辑
1.java.util.Properties概述
public class Properties extends Hashtable<Object,Object>
Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。
一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。
java中的Properties文件是一种配置文件,主要用于表达配置信息,文件类型为'.properties',格式为文本文件,文件的内容格式为
"键=值"的格式,在properties文件中,用"#"来做注释,properties文件在项目中用在很多地方,操作比较方便。
dbconfig.properties- #----------------------------#
- # 数据库参数配置文件 #
- #----------------------------#
- DBDRIVER=oracle.jdbc.driver.OracleDriver
- DBURL=jdbc:oracle:thin:@127.0.0.1:1521:orcl
- DBUSER=SCOOT
- DBPWD=TIGER
- DBTYPE=ORACLE
复制代码 2.java.util.Properties方法概要
- import static java.lang.System.out;
- import java.io.BufferedInputStream;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.PrintWriter;
- import java.util.Iterator;
- import java.util.Properties;
- import java.util.Set;
- public class PropertiesDemo {
- public static void main(String[] args){
-
- Properties properties = new Properties();
-
- /* void setProperty(String key,String value)
- *
- * 调用HashTable的put方法来设置键值对
- **/
- properties.setProperty("DBTYPE", "ORACLE");
- properties.setProperty("DBDRIVER", "oracle.jdbc.driver.OracleDriver");
- properties.setProperty("DBURL", "jdbc:oracle:thin:@10.15.60.44:1521:orcl");
- properties.setProperty("DBUSER", "SCOOT");
- properties.setProperty("DBPWD", "TIGER");
-
- /*
- * String getProperty(String key) 用指定的键在此属性列表中搜索属性,也就是通过key获得key多对应的value
- * String getProperty(String key, String defaultValue) 用指定的键在此属性列表中搜索属性,若key不存在,返回 defaultValue,否则返回指定键的属性
- */
- out.println(properties.getProperty("DBTYPE"));
- out.println(properties.getProperty("DBTYPE","ORACLE"));
-
- /*
- * Set<E> stringPropertyNames()
- *
- * 返回此属性列表中的键集,其中该键集的对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。
- **/
- Set<String> set = properties.stringPropertyNames();
- Iterator<String> it = set.iterator();
- while(it.hasNext()){
- String key = it.next();
- String value = properties.getProperty(key);
- out.println(key + "=" + value);
- }
-
- /*
- * void list(PrintStream out)
- * void list(PrintWriter out)
- *
- * 将属性列表输出到指定的输出流,
- **/
- File file = new File("C:\\dbconfig.properties");
- if(!file.exists()){
- try {
- file.createNewFile();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- try {
- PrintWriter pw = new PrintWriter(file);
- properties.list(pw);
- pw.flush();
- pw.close();
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- }
-
- /*
- void load(InputStream inStream)
- 从输入流中读取属性列表(键和元素对)
- */
- Properties p = new Properties();
- try {
- InputStream in = new BufferedInputStream(new FileInputStream("C:\\dbconfig.properties"));
- p.load(in);
- Set<String> sset = p.stringPropertyNames();
- Iterator<String> iit = sset.iterator();
- while(iit.hasNext()){
- String key = iit.next();
- String value = p.getProperty(key);
- out.println(key + "=" + value);
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
复制代码 3.项目实战
在平时做项目的过程中,经常遇到properties配置文件,比如说配置数据库参数,FTP服务器参数信息,...
A.资源文件所存放的位置
properties文件需要放到classpath下面,就是java类或者库的存放路径
B.获取系统资源文件的方式有两种
(1) InputStream inputstream = ClassLoader.getSystemResourceAsStream("dbconfig.properties ");//文件不以"/" 开头
(2) InputStream inputstream = this.getClass().getResourceAsStream("/dbconfig.properties ");//文件必须"/"开头
C.提取加载资源文件的信息
D.操作资源文件,获取配置的属性
(1) 根据key值在资源文件中查询value值
(2) 获取所有的键值对的信息
iheima.rar
(6.57 KB, 下载次数: 21)
|