除了使用Map保存鍵值對外,還可以用java.util.Properties保存鍵值對。與Map相比,Properties具有如下特點:
能從輸入流(如文件)中獲取鍵值對信息。
能將鍵值對信息存放到輸出流(如文件)中。

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

/**
* 屬性集合類 Properties
*/
public class TestProperties {

public static void main(String[] args) throws IOException {
//新建一個Properties對象
Properties props = new Properties();
//往Properties中存放數據,格式位<key, value>
//key 和 value都是字符串
props.setProperty("name", "ZhangSan");
props.setProperty("gender", "male");
props.setProperty("age", "30");
props.setProperty("telNO", "01088888888");
props.setProperty("address", "xxxxxxxx");
//從Properties中獲取數據。必須提供key
System.out.println("name: " + props.getProperty("name"));
System.out.println("gender: " + props.getProperty("gender"));
System.out.println("age: " + props.getProperty("age"));
System.out.println("telNO: " + props.getProperty("telNO"));
System.out.println("address: " + props.getProperty("address"));
//可以位返回值提供一個缺省值,當Properties中沒有該key時,用默認值返回
System.out.println("other: " + props.getProperty("other", "none"));
//將Properties中的數據保存到輸出流,比如文件輸出流
String fileName = "c:/test.properties";
FileOutputStream out = new FileOutputStream(fileName);
props.store(out, "test");
out.close();
//打開c:/test.properties文件,可以看見里面的內容,注意到,順序是改變了的。
Properties newProps = new Properties();
newProps.setProperty("type", "newProps");
//可以從輸入流中獲取加載數據,比如文件輸入流
//從properties文件中加載數據
FileInputStream in = new FileInputStream(fileName);
newProps.load(in);
in.close();
System.out.println();
System.out.println("type: " + newProps.getProperty("type"));
System.out.println("name: " + newProps.getProperty("name"));
System.out.println("gender: " + newProps.getProperty("gender"));
//將Properties中的數據輸出到一個輸出流
System.out.println();
props.list(System.out);
}
}




























































-- 學海無涯