java.util.Properties类 学习笔记

转载 2012年03月27日 18:06:46
学习目标:
 
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<K,V>
      java.util.Hashtable<Object,Object>
          java.util.Properties
 
从层次机构看,Properties类实现了Map接口,因为HashTable实现了Map接口,因此Properties类本质上是一种简单的Map容器。
实际上,Properties类本身表示了对一种Map结构的操作。properties文件本身就表示了一个“键值对”的集合。因此,Properties类属于集合容器的家族,在使用前应该创建一个Properties的容器,实际上就是创建一个默认不带参数的Properties对象。以后通过别的方式给里面添加“键值对”。
 
2、properties文件与Properties类的关系
通过properties文件可以填充Properties类。
也可以通过xml文件来填充Properties类。
可以通过绝对路径方式加载Properties文件信息,也可以使用相对路径加载。
 
三、实践
 
1、以绝对相对路径方式加载properties文件信息。
2、将Properties对象持久化到一个properties文件或者一个xml文件中。
3、修改并持久化properties文件。
 
测试代码:
 
测试的properties文件:
#格式良好的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
 
C:盘下写入的文件如下:
 
 
 
 
呵呵,全部达到预期目标。

黑马程序员:java.util.Properties类 学习笔记

---------------------android培训、java培训、期待与您的交流!---------------------- 一、认识properties文件   1、propert...
  • u012159707
  • u012159707
  • 2013年09月28日 17:09
  • 392

java.util.Properties类 学习笔记

java.util.Properties类 学习笔记   学习目标:   1、认识properties文件,理解其含义,会正确创建properties文件。 2、会使用j...
  • qazwsx185313301
  • qazwsx185313301
  • 2014年04月13日 15:32
  • 424

java.util.Properties类 学习笔记2

查看原文:http://ibloger.net/article/132.htmljava.util.Properties类 学习笔记 学习目标: 1、认识properties文件,理解其含义,会正...
  • xiaokui_wingfly
  • xiaokui_wingfly
  • 2015年10月18日 15:59
  • 320

java.util.Properties类 学习笔记1

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是”键=值”的格式,在properties文件中,可以用”...
  • xiaokui_wingfly
  • xiaokui_wingfly
  • 2015年10月18日 15:56
  • 311

深入解析API(java.util.Properties)

熟知Java API对于今后的开发还是有很大的帮助,之前一直没有很好的去了解,导致后期开发中经常遇到一些常用到的工具类不能很快的使用,为此特别开始Java API之旅,写下自己的每一个常用案例,跟大家...
  • cl05300629
  • cl05300629
  • 2013年10月11日 03:15
  • 4389

Java.util.Properties类

学习目标:   1、认识properties文件,理解其含义,会正确创建properties文件。 2、会使用java.util.Properties类来操作properties文件。 3、掌...
  • kolabb
  • kolabb
  • 2014年03月15日 16:22
  • 330

Java.util.properties类

java.util.Properties是对properties这类配置文件的映射。支持key-value类型和xml类型两种。 key-value类型的配置文件大略长这样: #测试环...
  • Searching_Bird
  • Searching_Bird
  • 2015年09月01日 12:44
  • 169

java.util.properties 类的使用

Properties 基本知识 如果不熟悉 java.util.Properties 类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,如清单 1 所示。 清...
  • Cece_2012
  • Cece_2012
  • 2012年04月29日 20:57
  • 7316

java.util.Properties类

说明的是,这里可以读写一般的properties文件,也可以对付XML文件,但是这个XML文件格式要求是定死了,不是很灵活,看看我写的几个例子就自然明白import java.io.*;import ...
  • yinbodotcc
  • yinbodotcc
  • 2006年12月25日 23:48
  • 1529

类 java.util.Properties

类 java.util.Properties java.lang.Object | +----java.util.Dictionary | +----j...
  • sunnyshow2007
  • sunnyshow2007
  • 2007年09月11日 11:15
  • 337
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java.util.Properties类 学习笔记
举报原因:
原因补充:

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