Properties类是Java中操作配置文件的类, 属性映射(property map):是一种存储键/值对的数据结构。属性映射经常被用来存放配置信息
1、在Java中属性操作类是一个很重要的类,而要想明白属性操作类的作用,就必须先要清楚什么是属性文件,在属性文件中含有多个属性,每个属性就是直接用字符串表示出来的"key=value 键/值对", 而如果要想轻松操作这些属性需要使用Properties类完成
2、Properties class表示一个属性的持久化集合,Properties能够被保存到stream中,也能从stream中读出Properties, 每个key和与其相应的value都是一个字符串,properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#“来作注释,properties文件在Java编程中用到的地方很多,操作很方便
3、 在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用”#"来注释
它有三个特性:
• 键和值都是字符串
• 键/值对可以很容易地写入文件或从文件读出。
• 用二级表存放默认值
它提供了几个主要的方法:
• getProperty ( String key),用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value
• load ( InputStream inStream),从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test.properties 文件)进行装载来获取该文件中的所有键 - 值对。以供 getProperty ( String key) 来搜索
• setProperty ( String key, String value) ,调用 Hashtable 的方法 put 。他通过调用基类的put方法来设置键 - 值对
• store ( OutputStream out, String comments),以适合使用 load 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。与 load 方法相反,该方法将键 - 值对写入到指定的文件中去。(注意这个是将字符串以注释的形式放入配置文本中)
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 outputStream = new PrintStream(new File(
"./src/test.properties"));
properties.store(outputStream, "这是注释");
}
}
示例代码执行结果:

警告: 出于历史上的原因,Properties 类实现了 Map<Object,Object〉 。 因此, 可以使用 Map接口的 get 和 put 方法。不过,get 方法会返回类型 Object, 而 put 方法允许插入任何对 象。最好坚持使用 getProperty 和 setProperty 方法,这些方法会处理字符串,而不是对象
注释: 属性映射是没有层次结构的简单表。通常会用类似 window.main.color、window, main.title 等键名引入一个伪层次结构 Q 不过 Properties 类没有提供方法来组织这样一个 层次结构
本文深入讲解Java中的Properties类,探讨其在配置文件管理中的应用,包括如何读取、修改及保存属性,同时介绍Properties类的主要方法及其特性。
248

被折叠的 条评论
为什么被折叠?



