首页 > 代码库 > Properties类:属性列表,集合

Properties类:属性列表,集合

Properties类的概述(集合)

1. Properties类的特点:
        1) 属性列表(键和值)中每个键及其对应值都是一个字符串
        2) 可保存在流中或从流中加载,可以对IO流进行操作。把属性集合存到文件中,或从文件中读取所有的属性。

 

2. 属性文件的格式要求:
        属性文件中不能直接汉字,所有的汉字会转成Unicode编码
        1) 格式:属性名=属性值
        2) 每个属性占一行
        3) 注释:以#号开头的行是注释行
        4) 属性文件中所有空行被忽略
        5) 扩展名:properties

常用的方法

1. 构造方法:使用无参的构造方法 new Properties(),创建了一个空的集合。
       
2. 设置/得到属性值:
        不建议使用从Map中继承下来的put()/get()方法添加/获得元素,因为put()可能添加非字符串类型的数据。
        添加属性值:setProperty(属性名,  属性值)
        得到属性值:String getProperty("属性名"),如果没有属性,则返回null
                   String getProperty("属性名", "默认值") 始终保证可以得到一个非空的值
        遍历的方法,得到所有的属性名stringPropertyNames()

将集合中内容存储到文件

1. 保存到IO流:(字节流,字符流)
        store(OutputStream 字节输出流, String 注释)
        store(Writer 字符输出流, String 注释)

技术分享
        @Test
        public void testPropertiesSave() throws IOException {
            //创建属性集
            Properties prop = new Properties();
           prop.setProperty("name", "Jack");
           prop.setProperty("age", "18");
           prop.setProperty("gender", "male");
            //写到FileOutputStream字节输出流
             FileOutputStream fos = new FileOutputStream("d:/emp.properties");
           prop.store(fos, "I am a employee");//写到io流中 
           fos.close();         }
View Code

2. 读取文件中的数据,并保存到属性集合
    1. 从流中加载:
        load(InputStream 字节输入流)
        load(Reader 字符输入流)

技术分享
    @Test
    public void testLoad() throws IOException {
        //创建一个空的集合
        Properties properties = new Properties();

        //创建一个文件输入流
        FileInputStream fis = new FileInputStream("d:/emp.properties");
        properties.load(fis);
        System.out.println(properties);

        //关闭流
        fis.close();
    }
View Code

Properties类:属性列表,集合