java.util.Properties类

java.util.Properties类 学习笔记

学习目标:

1、认识properties文件,理解其含义,会正确创建properties文件。
2、会使用java.util.Properties类来操作properties文件。
3、掌握相对路径,能正确书写一个properties文件的相对路径。

一、认识properties文件

1、properties文件是一个文本文件
2、properties文件的语法有两种,一种是注释,一种属性配置。
注 释:前面加上#号
属性配置:以“键=值”的方式书写一个属性的配置信息。
3、properties文件的一个属性配置信息值可以换行,但键不可以换行。值换行用“\”表示。
4、properties的属性配置键值前后的空格在解析时候会被忽略。
5、properties文件可以只有键而没有值。也可以仅有键和等号而没有值,但无论如何一个属性配置不能没有键。

例如,下面一个properties文件:

正确的properties配置文件

aaa=1\
11
b
bb = 222

格式良好的properties文件

aaa=111
bbb=222

二、解读java.util.Properties类

1、Properties类的层次结构
java.lang.Object
java.util.Dictionary

格式良好的properties文件

aaa=111
bbb=222

测试类:
package stu;

import java.io.*;
import java.util.Properties;

/**
* Properties类测试
* User: xiaohui
* Date: 2008-11-4 21:04:54
*/
public class TestProperties {
public static void main(String args[]) throws IOException {
testProperties();
test1();
}

    public static void testProperties() throws IOException { 
            System.out.println("------------testProperties-------------"); 
            //将properties文件加载到输入字节流中 
            InputStream is = new FileInputStream("D:\\myprojects\\lession4\\src\\stu\\ttt.properties"); 
            //创建一个Properties容器 
            Properties prop = new Properties(); 
            //从流中加载properties文件信息 
            prop.load(is); 
            //循环输出配置信息 
            for (Object key : prop.keySet()) { 
                    System.out.println(key + "=" + prop.get(key)); 
            } 

            //定义一个输出流 
            OutputStream os1 = new FileOutputStream("C:\\ttt.xml"); 
            OutputStream os2 = new FileOutputStream("C:\\ttt.properties"); 

            //从Properties对象导出导出到xml 
            prop.storeToXML(os1, "我从properties导出的XML配置文件"); 
            //从Properties对象导出properties文件 
            prop.store(os2, "我从properties导出的XML配置文件"); 

            is.close(); 
            os1.close(); 
            os2.close(); 

            //从xml加载配置信息,填充Properties容器 
            prop.loadFromXML(new FileInputStream("C:\\ttt.xml")); 
            //循环输出配置信息 
            System.out.println("我从导出的xml加载配置文件信息!"); 
            for (Object key : prop.keySet()) { 
                    System.out.println(key + "=" + prop.get(key)); 
            } 

            //修改Properties对象,并持久化到一个文件 
            prop.put("呵呵呵", "嘎嘎嘎"); 
            OutputStream os3 = new FileOutputStream("C:\\ttt1.xml"); 
            prop.storeToXML(os3, "我从properties导出的XML配置文件"); 
            os3.close(); 
    } 

    /** 
     * 以相对路径方式加载properties文件 
     * 
     * @throws IOException 
     */ 
    public static void test1() throws IOException { 
            System.out.println("------------test1-------------"); 
            Properties p = new Properties(); 
            p.load(TestProperties.class.getResourceAsStream("/stu/ttt.properties")); 
            for (Object key : p.keySet()) { 
                    System.out.println(key + "=" + p.get(key)); 
            } 
    } 

}

运行结果:
————testProperties————-
bbb=222
aaa=111
我从导出的xml加载配置文件信息!
bbb=222
aaa=111
————test1————-
bbb=222
aaa=111

Process finished with exit code 0

posted @ 2017-08-23 22:53  我想和这个世界聊聊  阅读(349)  评论(0编辑  收藏  举报