★Properties
在以前我總結(jié)的一篇關于集合框架的小文章里提到過,Properties是歷史集合類的一個典型的例子,這里主要不是介紹它的集合特性。大家可能都經(jīng)常接觸一些配置文件,如Windows的ini文件,Apache的conf文件,還有Java里的properties文件等,這些文件當中的數(shù)據(jù)以“關鍵字-值”對的方式保存!碍h(huán)境變量”這個概念都知道吧,它也是一種“key-value”對,以前也常常看到版上問“如何取得系統(tǒng)某某信息”之類的問題,其實很多都保存在環(huán)境變量里,只要用一條
1. System.getProperties().list(System.out);
就能獲得全部環(huán)境變量的列表:
-- listing properties --
java.runtime.name=Java(TM) 2 Runtime Environment, Stand...
sun.boot.library.path=C:\Program Files\Java\j2re1.4.2_05\bin
java.vm.version=1.4.2_05-b04
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.os.patch.level=Service Pack 1
java.vm.specification.name=Java Virtual Machine Specification
user.dir=d:\my documents\項目\eclipse\SWTDemo
java.runtime.version=1.4.2_05-b04
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\j2re1.4.2_05\li...
os.arch=x86
java.io.tmpdir=C:\DOCUME~1\cn2lx0q0\LOCALS~1\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows XP
sun.java2d.fontpath=
java.library.path=C:\Program Files\Java\j2re1.4.2_05\bi...
java.specification.name=Java Platform API Specification
java.class.version=48.0
java.util.prefs.PreferencesFactory=java.util.prefs.WindowsPreferencesFac...
os.version=5.1
user.home=D:\Users\cn2lx0q0
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.4
user.name=cn2lx0q0
java.class.path=d:\my documents\項目\eclipse\SWTDemo\bi...
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\Program Files\Java\j2re1.4.2_05
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode
java.version=1.4.2_05
java.ext.dirs=C:\Program Files\Java\j2re1.4.2_05\li...
sun.boot.class.path=C:\Program Files\Java\j2re1.4.2_05\li...
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.cpu.isalist=pentium i486 i386
主要類與方法和描述
1. load() //從一個外部流讀取屬性
2. store() //將屬性保存到外部流(特別是文件)
3. getProperty() //取得一個指定的屬性
4. setProperty() //設置一個指定的屬性
5. list() //列出這個Properties對象包含的全部“key-value”對
6. System.getProperties() //取得系統(tǒng)當前的環(huán)境變量
你可以這樣保存一個properties文件:
1. Properties prop = new Properties();
2. prop.setProperty("key1", "value1");
3. ...
4. FileOutputStream out = new FileOutputStream("config.properties");
5. prop.store(out, "--這里是文件頭,可以加入注釋--");
★Preferences
如果我說Java里面可以不使用JNI的手段操作Windows的注冊表你信不信?很多軟件的菜單里都有“Setting”或“Preferences”這樣的選項用來設定或修改軟件的配置,這些配置信息可以保存到一個像上面所述的配置文件當中,如果是Windows平臺下,也可能會保存到系統(tǒng)注冊表中。從JDK 1.4開始,Java在java.util下加入了一個專門處理用戶和系統(tǒng)配置信息的java.util.prefs包,其中一個類Preferences是一種比較“高級”的玩意。從本質(zhì)上講,Preferences本身是一個與平臺無關的東西,但不同的OS對它的SPI(Service Provider Interface)的實現(xiàn)卻是與平臺相關的,因此,在不同的系統(tǒng)中你可能看到首選項保存為本地文件、LDAP目錄項、數(shù)據(jù)庫條目等,像在Windows平臺下,它就保存到了系統(tǒng)注冊表中。不僅如此,你還可以把首選項導出為XML文件或從XML文件導入。
相關推薦:計算機等級考試二級Java經(jīng)典算法大全匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |