Properties类是Java中一个常用的类,主要用于读取和写入配置文件,以及管理应用程序中的属性。该类提供了一组方法,可以用来读取和写入键值对,其中键和值都是字符串类型。下面是一些Properties类的常用用法:
Properties类可以读取各种配置文件,包括.properties文件、.xml文件等。假设有一个名为config.properties的文件,其中包含了如下内容:
username=admin
password=123456
可以使用Properties类读取这个配置文件:
Properties prop = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {
prop.load(input);
String username = prop.getProperty("username");
String password = prop.getProperty("password");
System.out.println("username = " + username);
System.out.println("password = " + password);
} catch (IOException ex) {
ex.printStackTrace();
}
上述代码使用了Java 7引入的try-with-resources语法,可以自动关闭输入流。load()方法将配置文件中的键值对加载到Properties对象中,getProperty()方法根据键获取对应的值。
2.写入配置文件:
Properties类也可以将键值对写入到配置文件中。假设要将上述的配置写入到config.properties文件中,可以使用如下代码:
Properties prop = new Properties();
try (OutputStream output = new FileOutputStream("config.properties")) {
prop.setProperty("username", "admin");
prop.setProperty("password", "123456");
prop.store(output, null);
} catch (IOException ex) {
ex.printStackTrace();
}
除此之外,Properties类还提供了许多其他方法,如loadFromXML()、storeToXML()等,可以用来读取和写入XML格式的配置文件。总之,Properties类是一个非常实用的类,在Java应用程序中经常被用来读取和写入配置文件,管理应用程序中的属性。
Properties类中的getProperty()方法用于获取指定键对应的值。该方法的语法如下:
public String getProperty(String key)
其中,key参数表示要获取值的键名。如果该键名在Properties对象中存在,则返回该键对应的值,否则返回null。
需要注意的是,getProperty()方法只能获取字符串类型的值。如果需要获取其他类型的值,需要进行类型转换。例如,如果配置文件中存储的是一个整数,可以使用如下代码将其转换为int类型:
int port = Integer.parseInt(prop.getProperty("port"));
Properties类中的getProperty()方法获取指定键对应的值,并在键不存在时设置默认值
public String getProperty(String key, String defaultValue)
其中,key参数表示要获取值的键名;defaultValue参数表示键不存在时的默认值。
例如,假设有一个名为config.properties的配置文件,其中包含如下内容:
可以使用如下代码获取任务计划的cron表达式:
Properties prop = new Properties();
try (InputStream input = new FileInputStream("config.properties")) {
prop.load(input);
String cronExpression = prop.getProperty("task.cron", "off");
if (!cronExpression.equals("off")) {
// 调度任务
}
} catch (IOException ex) {
ex.printStackTrace();
}
上述代码创建了一个Properties对象,并使用load()方法加载配置文件中的键值对。然后,使用getProperty()方法获取任务计划的cron表达式对应的值,并设置默认值为"off"。如果键不存在,则返回默认值"off"。如果获取到的cron表达式不是"off",则可以执行相应的任务调度操作。
需要注意的是,getProperty()方法只能获取字符串类型的值。如果需要获取其他类型的值,需要进行类型转换。例如,如果配置文件中存储的是一个整数,可以使用如下代码将其转换为int类型:
int port = Integer.parseInt(prop.getProperty("port", "8080"));
总之,getProperty()方法可以方便地获取指定键对应的值,并在键不存在时设置默认值。这对于处理配置文件中的缺失或错误的键非常有用。