Properties.store用于保存配置,需先创建Properties对象并添加键值对,再通过store方法写入输出流,如FileOutputStream,可附加注释;默认使用ISO-8859-1编码,中文推荐用storeToXML并指定UTF-8编码,避免乱码,且应使用try-with-resources确保流正确关闭。

在Java中,Properties.store 方法用于将配置信息保存到文件或输出流中,是持久化属性键值对的核心手段。它通常配合 Properties.load 使用,实现配置的读取与写入。下面详细介绍如何正确使用 Properties.store 来保存配置文件。
创建并填充Properties对象
要保存配置,先需要一个 Properties 对象,并向其中添加键值对:
Properties props = new Properties();
props.setProperty("database.url", "jdbc:mysql://localhost:3306/mydb");
props.setProperty("database.username", "root");
props.setProperty("database.password", "123456");
props.setProperty("app.version", "1.0.0");
使用store方法保存到文件
store(OutputStream out, String comments) 是最常用的方法,可将属性列表写入指定输出流,并附加注释说明。
示例:将配置保存为本地文件 config.properties
立即学习“Java免费学习笔记(深入)”;
try (FileOutputStream fos = new FileOutputStream("config.properties")) {
props.store(fos, "Application Configuration File");
} catch (IOException e) {
e.printStackTrace();
}
执行后会生成 config.properties 文件,内容类似:
#Application Configuration File #Mon Sep 30 10:20:45 CST 2024 database.url=jdbc\:mysql\://localhost\:3306/mydb database.username=root database.password=123456 app.version=1.0.0
注意:特殊字符如冒号会被自动转义(\:),时间戳也会被自动添加。
支持中文及编码处理
默认情况下,store 使用 ISO-8859-1 编码,若需保存中文,建议使用 storeToXML 方法,或手动处理编码。
使用 XML 格式保存(推荐用于含中文场景):
try (FileOutputStream fos = new FileOutputStream("config.xml")) {
props.storeToXML(fos, "包含中文的配置", "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
生成的 XML 文件会以 UTF-8 编码保存,中文不会乱码,且结构清晰,便于跨平台使用。
基本上就这些。只要正确获取输出流并调用 store 或 storeToXML,就能可靠地保存配置。注意及时关闭流资源,建议使用 try-with-resources 确保安全释放。不复杂但容易忽略细节,比如编码和路径问题。










