/*
java.util.Properties集合是Hashtable的子类,双列集合
主要使用的是与String相关的方法
常用方法:
getProperties(): 获取系统相关的属性名及属性值
getProperty(String key): 根据属性名获取属性值
setProperty(String k,String v): 保存一个键值对(属性名=属性值)
Set- stringPropertyNames(): 获取所有属性值对应的Set集合
load(InputStream inStream): 从字节输入流中读取键值对。
参数: InputStream inStream: 抽象父类,传递子类FileInputStream对象
load(Reader reader): 从字符输入流中读取键值对。
参数: Reader reader: 抽象父类,传递子类FileReader对象
使用步骤:
1.load方法加载的文件,要求扩展名(配置信息).properties,一般存储到src根目录下,
数据存储格式: 属性名=属性值,注释: 用#
store(OutputStream outStream,String comments):
参数: OutputStream outStream: 抽象父类,传递子类FileOutputStream对象
String comments: 给properties文件的说明信息 可以直接写为null
store(Writer writer,String comments):
参数: Writer writer: 抽象父类,传递子类FileWriter对象
String comments: 给properties文件的说明信息 可以直接写为null
把Properties集合对象中的内容存储到文件中 props.store(os,null);
*/
public class Demo01Properties {
public static void main(String[] args) {
//System类调用静态方法,获取Properties对象
Properties props = System.getProperties();
//增强for遍历
for (String propertyName : props.stringPropertyNames()) {
String propertyValue = props.getProperty(propertyName);
System.out.println(propertyName+"::"+propertyValue);
}
}
//Properties集合的基本使用
private static void method01() {
Properties props = new Properties();
//添加键值对
props.setProperty("name","zhangsan");
props.setProperty("age","28");
props.setProperty("gender","nan");
//遍历
Set<String> propertyNames = props.stringPropertyNames();
for (String propertyName : propertyNames) {
String propertyValue = props.getProperty(propertyName);
System.out.println(propertyName+"::"+propertyValue);
}
}
}
public class Demo02Properties {
public static void main(String[] args) throws IOException {
//2.创建Properties集合对象
Properties props = new Properties();
//3.创建InputStream/Reader的子类对象,绑定源文件
InputStream is = new FileInputStream("day13_sw\\src\\config.properties");
//4.Properties集合对象调用load方法传递InputStream/Reader的子类对象,
//把文件内容以键值对的方式加载到Properties集合对象中
props.load(is);
//5.遍历集合
Set<String> propertyNames = props.stringPropertyNames();
for (String propertyName : propertyNames) {
String propertyValue = props.getProperty(propertyName);
System.out.println(propertyName+"::::"+propertyValue);
}
}
}