Skip to content

Properties


一、基本介绍

  • Properties 是用于读写配置文件的集合
  • 配置文件格式:键=值
  • 注意:键值对不需要有空格,值不需要用引号引起来,默认类型是 String

特别注意:文件应该是 properties 文件才可以读取成功,否则失败但是不会抛异常

1. 常见方法

方法/操作描述
load()加载配置文件的键值对到 Properties 对象
list()将数据显示到指定设备
getProperty(key)根据键获取值(传入字符串)
setProperty(key, value)设置键值对到 Properties 对象
store()将 Properties 中的键值对存储到配置文件,在 idea 中,保存信息到配置文件,如果含有中文,会存储为 unicode 码comments 是配置文件最开头的注释,可以为空

2. 传参说明

  • load(Reader / InputStream)
  • list(PrintStream / PrintWriter)
  • setProperty(key, value)
  • getProperty(key)
  • store(outputStream, comments)

3. 注意点

如果配置文件中的内容出现了中文,保存到文件中会以 unicode 码保存

中文 unicode 码在线查询

https://www.lddgo.net/string/char-encode

二、配置文件读取

代码示例

java
public class newFile {
    public static void main(String[] args) throws IOException {
        String filePath = "C:\\Users\\jackson\\Desktop\\file.properties";
        // 创建 Properties 对象
        Properties properties = new Properties();
        // 加载文件
        properties.load(new FileReader(filePath));
        // 打印信息到控制台
        properties.list(System.out);

        // 根据键来获取值
        String user = properties.getProperty("user");
        System.out.println("user = " + user);
    }
}

代码分析

  • 创建 properties 对象
  • 调用 load() 方法加载文件
  • 调用 list() 方法输出配置文件信息到控制台

三、配置文件创建与修改

(1)易错点:先设置文件信息,后创建文件(现有内容才能写入)

(2)内容修改的实现

由于 Properties 类本质还是 Hashtable,根据底层源码可以知道,当键值相同时,如果值不同会对键对应的值重新赋值,实现修改的效果

代码示例

java
public class newFile {
    public static void main(String[] args) throws IOException {
        // 创建 Properties 对象
        Properties properties = new Properties();
        // 设置创建文件的目标路径
        String dirPath = "C:\\Users\\jackson\\Desktop\\file2.properties";
        // 设置文件信息
        properties.setProperty("user","jacksonling");
        properties.setProperty("pwd","123456");
        // 创建文件
        properties.store(new FileOutputStream(dirPath),null);
    }
}

代码分析

  • 首先创建 properties 对象
  • 调用 setProperty() 方法设置文件信息
  • 调用 store() 方法完成文件的创建