廖雪峰Java5集合-3Map-Properties的使用

Properties用于读取配置

  • properties文件只能使用ASCII码
  • #表示注释
  • 可以从文件系统读取.properties文件
        Properties props = new Properties();
        String f = "C:\\conf\\setting.properties";
        props.load(new FileInputStream(f));
  • 可以从classpath读取.properties文件
        Properties props = new Properties();
        props.load(getClass().getResourceAsStream("/com/testList/setting.properties"));
  • 读取多个.properties文件
  • 后读取的key-value会覆盖已读取的key-value。可以把默认的配置放在classpath中,根据环境编写另外的配置。

Properties设计的目的是为了存储String类型的key-value,但Properties实际上是从Hashtable派生的,存在兼容型问题,且未修复,get和put方法不要用

  • String getProperty(String key)
  • void setProperty(String key,String value)
  • Object get(Object key)
  • void put(Object key,Object value)

setting.properties

url=https://www.baidu.com
language=Java
course.title=java\u96c6\u5408\u7c7b

Main.java

public class Main {
    public static void main(String[] args) throws IOException {
        Properties props = new Properties();
        props.load(Main.class.getResourceAsStream("/com/testList/setting.properties"));
        String url = props.getProperty("url");
        String courseTitle = props.getProperty("course.title");
        String language = props.getProperty("language");
        String desc = props.getProperty("description","no desciption");
        System.out.println(url);
        System.out.println(courseTitle);
        System.out.println(language);
        System.out.println(desc);
    }
}
## 总结 * Properties用于读写配置文件xx.properties * .properties文件只能使用ASCII编码 * 可以从ClassPath或文件系统读取.properties文件 * 读写Properties时: * 仅使用getProperty()/setProperty()方法 * 不要调用继承而来的get()/put()方法
posted on 2019-03-17 16:45  singleSpace  阅读(229)  评论(0)    收藏  举报