標籤:dsa base from password ret 檔案 注釋 stack rac
java.util.Properties是對properties這類設定檔的映射。支援key-value類型和xml類型兩種。key-value類型的設定檔大略長這樣:複製代碼#測試環境配置:平台路徑配置jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/dbPort = localhostdatabaseName = myddbUserName = root複製代碼#打頭的是注釋行,Properties會忽略注釋。允許只有key沒有value。例如這樣:複製代碼#測試環境配置:平台路徑配置jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/dbPort = databaseName複製代碼這種情況下,value會被set成null。properties類實現了Map介面,所以很明顯,他是用map來儲存key-value資料,所以也註定存入資料是無序的,這個點需要注意。只能通過key的方式來get對應value。針對key-value這種設定檔,是用load方法就能直接映射成map,非常簡單好用。這種設定檔也是我們最重要碰到的設定檔,利用properties讀取這類檔案到記憶體一行代碼就歐科,比自己解析強大多了,這點很贊。讀取設定檔的大略代碼如下:複製代碼 1 public class LoadSample { 2 public static void main(String args[]) throws Exception { 3 Properties prop = new Properties(); 4 FileInputStream fis = 5 new FileInputStream("sample.properties"); 6 prop.load(fis); 7 prop.list(System.out); 8 System.out.println("\nThe foo property: " + 9 prop.getProperty("foo")); 10 } 11 } 複製代碼第六行的load方法直接生產一個記憶體map,第九行就能get到對應的value了,簡單快捷。這裡的第七行list方法是一個輸出方法,這邊是輸出到console,也可以輸出到檔案等,就能實現記憶體寫入設定檔了。比如這樣:複製代碼 1 //通過list 方法將Properties寫入Properties檔案 2 import java.io.IOException; 3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.PrintStream; 6 import java.util.Properties; 7 8 public class Test { 9 public static void main(String[] args) {10 11 Properties p = new Properties();12 p.setProperty("id","dean");13 p.setProperty("password","123456");14 15 try{16 PrintStream fW = new PrintStream(new File("e:\\test1.properties"));17 p.list(fW );} catch (IOException e) {18 e.printStackTrace();19 20 }21 }22 } 複製代碼這樣就能把記憶體中的properties對象寫入到檔案中了。 另外一種配置形式是xml形式的,這種配置相對上面一種就少見一點。 xml形式的設定檔格式大略是這樣:複製代碼 複製代碼讀取xml配置跟讀取kv配置沒差別,就是把load換成xml對應的loadFromXML方法,代碼大略是這樣:複製代碼 1 public class LoadSampleXML { 2 public static void main(String args[]) throws Exception { 3 Properties prop = new Properties(); 4 FileInputStream fis = 5 new FileInputStream("sampleprops.xml"); 6 prop.loadFromXML(fis); 7 prop.list(System.out); 8 System.out.println("\nThe foo property: " + 9 prop.getProperty("foo")); 10 } 11 } 複製代碼把記憶體中的properties對象寫入到xml檔案中也和上面差不多,就是把list方法改成xml對應的storeToXML方法。代碼大略是這樣:複製代碼 1 import java.io.IOException; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.PrintStream; 5 import java.util.Properties; 6 7 public class Test { 8 public static void main(String[] args) { 9 Properties p = new Properties();10 p.setProperty("id","dean");11 p.setProperty("password","123456");12 13 try{14 PrintStream fW = new PrintStream(new File("e:\\test1.xml"));15 p.storeToXML(fW,"test");16 } catch (IOException e) {17 e.printStackTrace();18 }19 }20 }21
java 讀取設定檔