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=javau96c6u5408u7c7b
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()方法