Properties 类是Java中操作配置文件的类,它的包名是java.util.Properties,从public class Properties extends Hashtable可以知道Properties类继承了Hashtable,而HashTable又是实现了Map接口,所以可对 Properties 对象应用 put 和 putAll 方法(但通常不建议使用这两个方法,因为它们允许调用者插入其键或值不是 String 的项),而相反,应该使用 setProperty 方法。如果 Properties 对象是不安全的(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用无法完成,调用失败。
package com.my.iodemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.Reader;
import java.util.Properties;
/**
* Properties 类是Java中操作配置文件的类 *
*
*/
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
Properties properties=new Properties();
//加载配置文件
//1、字节流(输入)
FileInputStream in=new FileInputStream("./src/test.properties");
properties.load(in);
//2、字符流(输入)Reader
Reader reader=new FileReader(new File("./src/test.properties"));
properties.load(reader);
reader.close();
//读取配置内容
System.out.println("name:"+properties.getProperty("name"));
//指定默认值,当无法找到key时返回指定的默认值
//当key不存在时,不指定默认值输出为null,指定默认值后输出默认值
System.out.println("name1:"+properties.getProperty("name1","233333"));
//设置配置的值
//当key存在时,修改值;key不存在时,添加
properties.setProperty("name", "西米");
properties.setProperty("height", String.valueOf(170));
properties.remove("height");
//配置输出
//1、输出到控制台
properties.list(System.out);
//2、输出到文件
PrintStream outPrintStream=new PrintStream(new File("./src/test.properties"));
properties.store(outPrintStream, "这是注释");
}
}
代码执行效果如下: