在Java开发中,经常需要读取和写入配置文件。INI文件是一种常见的配置文件格式,它以键值对的形式存储数据,易于阅读和编辑。本文将介绍一个Java类,它能够处理INI文件,并且支持环境变量的解析,以及各种数据类型的存取。
这个类的一个显著特点是支持环境变量。在INI文件中定义值时,可以引用环境变量。例如,下面的INI文件片段展示了如何使用环境变量:
; 示例INI文件
[Database]
UserId = DBuser
Sid = DBSid
DBHost = 145.101.56.32
DBPort = 1521
DBLib = %ORACLE_HOME%\lib\classes12.jar
当读取DBLib
变量时,类会尝试获取%ORACLE_HOME%
环境变量的值。假设在系统中,%ORACLE_HOME%
指向C:\Oracle
目录,那么DBLib
将被展开为C:\Oracle\lib\classes12.jar
。
下面的代码片段展示了如何使用这个类。相同的代码也可以在INIFile
类的main
方法中找到。
public static void main(String[] pstrArgs) {
INIFile objINI = null;
String strFile = null;
if (pstrArgs.length == 0) return;
strFile = pstrArgs[0];
// 下面的调用加载strFile(如果存在)
objINI = new INIFile(strFile);
objINI.setStringProperty(
"Database",
"SID",
"ORCL",
"Database SID"
);
objINI.setStringProperty(
"Database",
"UserId",
"System",
"User Id"
);
objINI.setStringProperty(
"Database",
"Password",
"Manager",
"Password"
);
objINI.setStringProperty(
"Database",
"HostName",
"DBServer",
"Server Host"
);
objINI.setIntegerProperty(
"Database",
"Port",
1521,
"Server Port"
);
// 将更改保存回strFile
objINI.save();
objINI = null;
}
由于INI文件中所有数据都以字符串形式存储,这个类提供了以下方法来正确地解释日期和时间戳值。
对于支持的日期时间格式,请参考java.text.SimpleDateFormat
。
这个类公开了以下公共方法来访问INI属性值。所有这些方法都需要传递INI节名和属性名作为输入参数。
此外,该类还提供了以下附加方法来检索INI文件中所有节的名称,特定节下所有属性的名称,删除属性,删除节,以及将更改保存回磁盘。构造函数会自动调用load
方法。
该类不支持跨多行的属性值。不支持节中的重复属性。最后一个属性值将覆盖之前的值。