資源描述:
《java properties 類讀取配置文件信息》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、在我們平時(shí)寫程序的時(shí)候,有些參數(shù)是經(jīng)常改變的,而這種改變不是我們預(yù)知的。比如說我們開發(fā)了一個(gè)操作數(shù)據(jù)庫的模塊,在開發(fā)的時(shí)候我們連接本地的數(shù)據(jù)庫那么IP?,數(shù)據(jù)庫名稱,表名稱,數(shù)據(jù)庫主機(jī)等信息是我們本地的,要使得這個(gè)操作數(shù)據(jù)的模塊具有通用性,那么以上信息就不能寫死在程序里。通常我們的做法是用配置文件來解決。各種語言都有自己所支持的配置文件類型。比如Python?,他支持.ini?文件。因?yàn)樗麅?nèi)部有一個(gè)ConfigParser?類來支持.ini?文件的讀寫,根據(jù)該類提供的方法程序員可以自由的來操作.ini?
2、文件。而在Java?中,Java?支持的是.properties?文件的讀寫。JDK?內(nèi)置的java.util.Properties?類為我們操作.properties?文件提供了便利。一..properties?文件的形式==========================================================??#?以下為服務(wù)器、數(shù)據(jù)庫信息dbPort=localhost?databaseName=mydb?dbUserName=root?dbPassword=root?#
3、?以下為數(shù)據(jù)庫表信息dbTable=mytable?#?以下為服務(wù)器信息ip=192.168.0.9?上面的文件中我們假設(shè)該文件名為:test.properties?文件。其中#?開始的一行為注釋信息;在等號(hào)“=?”左邊的我們稱之為key?;等號(hào)“=?”右邊的我們稱之為value?。(其實(shí)就是我們常說的鍵-?值對(duì))key?應(yīng)該是我們程序中的變量。而value?是我們根據(jù)實(shí)際情況配置的。二.JDK?中的Properties?類Properties?類存在于胞Java.util?中,該類繼承自Hashtab
4、le,它提供了幾個(gè)主要的方法:?1.?getProperty(String?key),??用指定的鍵在此屬性列表中搜索屬性。也就是通過參數(shù)key?,得到key?所對(duì)應(yīng)的value?。?2.load(InputStream?inStream),從輸入流中讀取屬性列表(鍵和元素對(duì))。通過對(duì)指定的文件(比如說上面的????test.properties?文件)進(jìn)行裝載來獲取該文件中的所有鍵-?值對(duì)。以供getProperty(String?key)來搜索。3.?setProperty(String?key,S
5、tring?value),調(diào)用Hashtable的方法put。他通過調(diào)用基類的put方法來設(shè)值鍵-?值對(duì)。?4.?store(OutputStream?out,String?comments),??以適合使用load方法加載到Properties表中的格式,將此Properties表中的屬性列表(鍵和元素對(duì))寫入輸出流。與load?方法相反,該方法將鍵-?值對(duì)寫入到指定的文件中去。5.?clear(),清除所有裝載的鍵?-?值對(duì)。該方法在基類中提供。有了以上幾個(gè)方法我們就可以對(duì).properties?文
6、件進(jìn)行操作了!三.代碼實(shí)例?package?configuration;import?java.io.FileInputStream;import?java.io.FileNotFoundException;import?java.io.FileOutputStream;import?java.io.IOException;import?java.util.Properties;/**?*?讀取properties文件?*?@author?Qutr?*?*/public?class?Configurat
7、ion{????private?Properties?propertie;????private?FileInputStream?inputFile;????private?FileOutputStream?outputFile;??????/**?????*?初始化Configuration類?????*/????public?Configuration()???{????????propertie?=?new?Properties();????}????????/**?????*?初始化Config
8、uration類?????*?@param?filePath?要讀取的配置文件的路徑+名稱?????*/????public?Configuration(String?filePath)????{????????propertie?=?new?Properties();????????try{????????????inputFile?=?new?FileInputStream(filePath);????????????propertie