Properties类

329 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第30天,点击查看活动详情

Properties类

介绍

(1)专门用于读写配置文件的集合类,

配置文件的格式:

键=值

键=值

(2)注意:键值对不需要有空格,值不需要用引号引起来,默认类型是String

Properties (Java Platform SE 6)

  • public class Properties
    extends Hashtable<Object,Object>
    

Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。

一个属性列表可包含另一个属性列表作为它的“默认值”;如果未能在原有的属性列表中搜索到属性键,则搜索第二个属性列表。

因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 putputAll 方法。但不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项。相反,应该使用 setProperty 方法。如果在“不安全”的 Properties 对象(即包含非 String 的键或值)上调用 storesave 方法,则该调用将失败。类似地,如果在“不安全”的 Properties 对象(即包含非 String 的键)上调用 propertyNameslist 方法,则该调用将失败。

Properties方法

Properties (Java Platform SE 6)

 StringgetProperty(String key)           用指定的键在此属性列表中搜索属性。
 StringgetProperty(String key, String defaultValue)           用指定的键在属性列表中搜索属性。
 voidlist(PrintStream out)           将属性列表输出到指定的输出流。
 voidlist(PrintWriter out)           将属性列表输出到指定的输出流。
 voidload(InputStream inStream)           从输入流中读取属性列表(键和元素对)。
 voidload(Reader reader)           按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。
 voidloadFromXML(InputStream in)           将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。
 Enumeration<?>propertyNames()           返回属性列表中所有键的枚举,如果在主属性列表中未找到同名的键,则包括默认属性列表中不同的键。
 voidsave(OutputStream out, String comments)           已过时。 如果在保存属性列表时发生 I/O 错误,则此方法不抛出 IOException。保存属性列表的首选方法是通过 store(OutputStream out, String comments) 方法或 storeToXML(OutputStream os, String comment) 方法来进行。
 ObjectsetProperty(String key, String value)           调用 Hashtable 的方法 put
 voidstore(OutputStream out, String comments)           以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。
 voidstore(Writer writer, String comments)           以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。
 voidstoreToXML(OutputStream os, String comment)           发出一个表示此表中包含的所有属性的 XML 文档。
 voidstoreToXML(OutputStream os, String comment, String encoding)           使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。
 Set<String>stringPropertyNames()           返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。

应用案例

使用Properties类添加key-value到文件mysql2.properties中

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class Properties02 {
    public static void main(String[] args) throws IOException {
        //使用 Properties 类来读取 mysql.properties 文件
        //1. 创建 Properties 对象
        Properties properties = new Properties();
        //2. 加载指定配置文件
        properties.load(new FileReader("src\\mysql.properties"));
        //3. 把 k-v 显示控制台
        properties.list(System.out);
        //4. 根据 key 获取对应的值
        String user = properties.getProperty("user");
        String pwd = properties.getProperty("pwd");
        System.out.println("用户名=" + user);
        System.out.println("密码是=" + pwd);
    }
}