当我们启动java虚拟机的时候,会加载许多配置信息, 例如虚拟机的版本、系统版本、默认编码以及jdk的安装路径等等信息,这些信息都是以键值对的形式存在。如:os.name=Windows 7,说明了系统是win 7版本的,这些信息都封装在一个Properties的对象中。
Properties继承自Hashtable,说明其是以键与值的方式存在的,只是Properties的键与值都是必须是字符串类型的数据。Properties常被用于配置文件的写入与读取,配置文件中记录着程序的各项参数信息,使用程序的用户可以自定义某些参数,以达到软件的个性化。
Properties的使用。
1、获取系统配置信息:
//获取系统的配置信息
Properties prop = System.getProperties();
//将信息输出到控制台
prop.list(System.out);
//将信息输出到文件
prop.list(new PrintStream("D:\\prop.txt"));
2、Properties的基本操作:
// 获取properties对象
Properties properties = new Properties();
//增加属性
properties.setProperty("java", "java".hashCode() + "");
properties.setProperty("c", "c".hashCode() + "");
System.out.println(properties);
// 获取属性
for (String s : properties.stringPropertyNames()) {
System.out.print(s + ":");
System.out.println(properties.getProperty(s));
}
3、将Properties以配置文件的形式存储,并读取配置文件,获取配置信息:
public class PropTest {
public static void main(String[] args) {
storeProp(); // 将配置信息存入配置文件中
loadProp(); // 加载配置信息
}
// 将配置信息存入配置文件中
private static void storeProp() {
try {
// 获取Properties对象
Properties prop = new Properties();
prop.setProperty("window_size", "1366*768");
prop.setProperty("font_color", "red");
// 将配置信息写入配置文件中
prop.store(new FileWriter("D:\\prop.in"), "第一次参数设置");
} catch (IOException e) {
e.printStackTrace();
}
}
// 加载配置信息
private static void loadProp() {
try {
//加载配置信息
Properties prop = new Properties();
prop.load(new FileReader("D:\\prop.in"));
prop.list(System.out);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}