Properties类是Java处理配置文件的内置工具,支持键值对持久化存储与加载;通过store()保存、load()读取,需统一使用UTF-8编码的Reader/Writer并妥善异常处理。

Properties 类是 Java 中用于处理配置文件的内置工具,它能将键值对以文本形式保存到文件,并在程序启动时重新加载,实现配置信息的持久化加载。
使用 Properties 保存配置到文件
通过 store() 方法可将内存中的配置写入磁盘文件,支持带注释的纯文本格式(如 .properties 文件)。
- 创建 Properties 实例,用 setProperty(key, value) 添加配置项
- 使用 store(OutputStream, String comments) 写入文件,第二个参数为头部注释(可为 null)
- 推荐用 FileOutputStream 并指定 UTF-8 编码(需包装为 OutputStreamWriter + BufferedWriter,或直接用 store() 的重载版本配合 Writer)
从文件加载配置到内存
用 load(InputStream) 可读取已存在的 .properties 文件,自动解析键值对并填充到 Properties 对象中。
- 确保文件路径正确,建议用 getClass().getResourceAsStream("/config.properties") 加载类路径下的资源
- 若文件不存在或格式错误,会抛出 IOException 或 IllegalArgumentException,应做 try-catch 处理
- 加载后可用 getProperty(key) 获取值,未定义的 key 返回 null,可提供默认值:getProperty(key, defaultValue)
注意编码与特殊字符处理
Properties 默认按 ISO-8859-1 解析文件,中文等非 ASCII 字符会被转义(如 \u4F60\u597D),影响可读性。
- 保存时若需保留原始中文,可用 store(Writer, String) 配合 UTF-8 编码的 FileWriter 或 OutputStreamWriter
- 加载时对应使用 load(Reader),同样传入 UTF-8 编码的 FileReader 或 InputStreamReader
- 避免混用 InputStream/Reader 方式,否则可能因编码不一致导致乱码或加载失败
结合实际场景简单示例
比如管理数据库连接参数:
- 首次运行时,程序生成 config.properties 并写入 jdbc.url=jdbc:h2:~/test
- 下次启动时自动 load() 加载,无需硬编码或重复配置
- 运维人员可直接编辑该文件调整参数,重启即生效,无需改代码、重编译
不复杂但容易忽略编码和流关闭问题,只要统一用 Reader/Writer + UTF-8,再配合异常处理,就能稳定支撑日常配置管理。

















