在Java中,创建和打开cfg文件(配置文件)是常见的任务,常用于存储应用程序的配置参数,如数据库连接信息或用户设置,cfg文件通常指.properties文件格式,这是一种键值对存储方式,Java标准库提供了java.util.Properties类来简化这一过程,确保高效且安全地处理文件读写,以下内容将详细解释如何创建cfg文件并打开它,涵盖完整步骤、代码示例和最佳实践,整个过程基于Java标准API,适用于Java 8及以上版本。

什么是cfg文件?
cfg文件(Configuration File)是一种文本文件,用于存储程序配置数据,在Java中,最常见的格式是.properties文件,其内容由键值对组成,
database.url=jdbc:mysql://localhost:3306/mydb
username=admin
password=secret
这种文件易于阅读和修改,Java的Properties类提供内置支持,无需第三方库。
步骤1:创建cfg文件
在Java中创建cfg文件涉及使用Properties类将内存中的数据写入文件,以下是详细步骤:

- 初始化Properties对象:创建一个
Properties实例,并添加键值对。 - 设置文件路径:指定cfg文件的保存位置,如项目根目录或指定文件夹。
- 写入文件:使用
FileOutputStream或FileWriter将数据写入文件,建议使用UTF-8编码以避免乱码。 - 错误处理:添加try-catch块捕获
IOException,确保文件操作安全。
代码示例:创建cfg文件
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class CreateCfgFile {
public static void main(String[] args) {
// 创建Properties对象并添加配置项
Properties prop = new Properties();
prop.setProperty("database.url", "jdbc:mysql://localhost:3306/mydb");
prop.setProperty("username", "admin");
prop.setProperty("password", "secret");
// 指定文件路径(config.properties)
String filePath = "config.properties";
try (FileOutputStream output = new FileOutputStream(filePath)) {
// 将Properties内容写入文件,使用UTF-8编码
prop.store(output, "Configuration File");
System.out.println("cfg文件创建成功!路径: " + filePath);
} catch (IOException e) {
System.err.println("创建文件失败: " + e.getMessage());
e.printStackTrace();
}
}
}
- 关键点:
prop.store(output, "comment")方法将数据写入文件,第二个参数是可选注释。- 使用try-with-resources语句(如
try (FileOutputStream output = ...))自动关闭资源,防止内存泄漏。 - 文件默认保存在项目工作目录,如果需指定绝对路径,使用
String filePath = "C:/path/to/config.properties";(Windows)或/path/to/config.properties(Linux/Mac)。
步骤2:打开cfg文件
打开(读取)cfg文件意味着加载文件内容到Java程序中,同样使用Properties类,通过读取文件解析键值对,步骤如下:
- 初始化Properties对象:创建新实例用于存储读取的数据。
- 加载文件:使用
FileInputStream或FileReader读取文件内容。 - 解析数据:调用
load()方法将文件内容加载到Properties对象。 - 访问配置值:通过键名获取值,如
getProperty("key")。 - 错误处理:处理文件不存在或格式错误的情况。
代码示例:打开cfg文件
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class OpenCfgFile {
public static void main(String[] args) {
// 指定文件路径(与创建时相同)
String filePath = "config.properties";
Properties prop = new Properties();
try (FileInputStream input = new FileInputStream(filePath)) {
// 加载文件内容到Properties对象
prop.load(input);
// 读取并打印配置值
String dbUrl = prop.getProperty("database.url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println("cfg文件打开成功!");
System.out.println("Database URL: " + dbUrl);
System.out.println("Username: " + username);
System.out.println("Password: " + password);
} catch (IOException e) {
System.err.println("打开文件失败: " + e.getMessage());
e.printStackTrace();
}
}
}
- 关键点:
prop.load(input)方法解析文件内容,如果文件不存在,会抛出FileNotFoundException(子类于IOException)。- 使用
getProperty("key")获取值,如果键不存在,返回null;可设置默认值,如getProperty("key", "default")。 - 对于大型文件,确保使用缓冲流(如
BufferedInputStream)提升性能,但Properties.load()已内部优化。
最佳实践和注意事项
- 文件编码:默认使用ISO-8859-1编码,但推荐显式指定UTF-8以避免中文乱码,在写入时,使用
prop.store(new OutputStreamWriter(output, StandardCharsets.UTF_8), "comment");在读取时,使用prop.load(new InputStreamReader(input, StandardCharsets.UTF_8))。 - 安全性:cfg文件常含敏感信息(如密码),避免硬编码路径,使用相对路径或环境变量(如
System.getProperty("user.dir")),生产环境中,考虑加密敏感数据。 - 错误处理:始终捕获
IOException,并处理边缘情况(如文件权限不足),使用日志框架(如Log4j)替代System.out.println。 - 文件位置:将cfg文件放在项目资源目录(如
src/main/resources),在构建时复制到输出路径,使用ClassLoader.getResourceAsStream()加载资源文件:try (InputStream input = getClass().getClassLoader().getResourceAsStream("config.properties")) { prop.load(input); } - 替代方案:对于复杂配置(如XML或JSON),可使用
java.util.prefs.Preferences或第三方库(如Apache Commons Configuration),但.properties文件是轻量级首选。 - 性能优化:读写小文件时性能足够;大文件需考虑并发访问(如加锁机制)。
在Java中创建和打开cfg文件主要通过Properties类实现,过程简洁高效,创建时,使用store()方法写入文件;打开时,使用load()方法读取内容,始终优先使用try-with-resources和错误处理,确保代码健壮性,此方法适用于大多数Java应用,无需额外依赖,如果配置需求复杂,可探索Spring Framework的@PropertySource注解或其他库。
通过掌握这些步骤,您可以轻松管理Java应用程序的配置,提升开发效率和可维护性,实践时,参考官方文档以确保兼容性。

引用说明基于Java官方文档和行业最佳实践,确保准确性和权威性,主要来源包括:
- Oracle Java Documentation: Properties Class(官方API参考)。
- Baeldung Tutorial: Java Properties File(实用指南)。
- Java Tutorials by Oracle: Handling Configuration with Properties(基础教程)。
- 编码实践参考自《Effective Java》by Joshua Bloch(权威书籍)。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/23061.html