欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java Property類使用詳解

 更新時(shí)間:2019年04月08日 09:12:26   作者:CS-Bob  
這篇文章主要介紹了Java Property類使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

概念理解

Properties 繼承于 Hashtable。表示一個(gè)持久的屬性集,屬性列表以key-value的形式存在,key和value都是字符串。Properties類被許多Java類使用。例如,在獲取環(huán)境遍歷時(shí)它就作為System.getProperties()方法的返回值。我們?cè)诤芏嘈枰苊庥簿幋a的應(yīng)用場(chǎng)景下需要使用Properties文件來(lái)加載程序需要配置的信息,比如JDBC、MyBatis框架等。Properties類則是Properties文件和程序的中間橋梁,不論是從properties文件讀取信息還是寫入信息到properties文件都要經(jīng)由Properties類。

寫入

Properties類調(diào)用setProperty方法將鍵值對(duì)保存到內(nèi)存中,此時(shí)可以通過(guò)getProperty方法讀取,propertyNames方法進(jìn)行遍歷,但是并沒有將鍵值對(duì)持久化到屬性文件中,故需要調(diào)用store方法持久化鍵值對(duì)到屬性文件中。

我們寫一個(gè)類測(cè)試

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Date;
import java.util.Properties;

public class TestProperties {
	public void writeProperties() {
		Properties properties = new Properties();
		OutputStream output = null;
		try {
			output = new FileOutputStream("config.properties");
			properties.setProperty("url", "jdbc:mysql://localhost:3306/");
			properties.setProperty("username", "root");
			properties.setProperty("password", "root");
			properties.setProperty("databases", "music_player");
			properties.store(output, "Steven1997 modify" + new Date().toString());
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if(output!=null) {
				try {
					output.close();
				}catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
	public static void main(String[] args) {
		TestProperties t = new TestProperties();
		t.writeProperties();
	}
}

執(zhí)行后,工程下面會(huì)出現(xiàn)一個(gè)config.properties文件,屬性文件內(nèi)容如下:

讀取

使用getProperty獲取config.properties文件配置文件的各項(xiàng)屬性。

package property;

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

public class LoadProperties {
	public void loadProperties() {
		Properties properties = new Properties();
		InputStream inputStream = null;
		
		try {
			inputStream = new FileInputStream("config.properties");
			properties.load(inputStream);
			System.out.println("url:" + properties.getProperty("url"));
			System.out.println("username:" + properties.getProperty("username"));
			System.out.println("password:" + properties.getProperty("password"));
			System.out.println("database:" + properties.getProperty("database"));
		} catch (IOException e) {
			e.printStackTrace();
		}finally {
			if(inputStream !=null) {
				try {
					inputStream.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		
	}
	public static void main(String[] args) {
		LoadProperties l = new LoadProperties();
		l.loadProperties();
	}
}

運(yùn)行后的結(jié)果

url:jdbc:mysql://localhost:3306/
username:root
password:root
database:music_player

遍歷

遍歷屬性文件中的鍵值對(duì)

package property;

import java.io.InputStream;
import java.util.Enumeration;
import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;

public class PropertiesTest {
	public void printAll() {
		Properties prop = new Properties();
		InputStream input = null;
		try {
			String file = "config.properties";
			input = getClass().getClassLoader().getResourceAsStream(file);
			if(input == null) {
				System.out.println("無(wú)法加載文件" + file);
				return ;
			}
			prop.load(input);
			// 方法一
			Set<Object> keys = prop.keySet();
			for(Object key:keys) {
				System.out.println("key:" + key.toString() + "|" + "value:" + prop.get(key));
			}
			//方法二:
			Set<Entry<Object, Object>> entrys =	prop.entrySet();//返回的屬性鍵值對(duì)實(shí)體
			for(Entry<Object, Object> entry:entrys){
				System.out.println("key:"+entry.getKey()+",value:"+entry.getValue());
			}
			//方法三:
			Enumeration<?> e = prop.propertyNames();
			while (e.hasMoreElements()) {
				String key = (String) e.nextElement();
				String value = prop.getProperty(key);
				System.out.println("Key:" + key + ",Value:" + value);
			}

		}catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(input != null) {
				try {
					input.close();
				}catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
	public static void main(String[] args) {
		PropertiesTest p = new PropertiesTest();
		p.printAll();
	}
}

運(yùn)行結(jié)果如下:

key:url|value:jdbc:mysql://localhost:3306/
key:password|value:root
key:database|value:music_player
key:username|value:root
key:url,value:jdbc:mysql://localhost:3306/
key:password,value:root
key:database,value:music_player
key:username,value:root
Key:password,Value:root
Key:url,Value:jdbc:mysql://localhost:3306/
Key:database,Value:music_player
Key:username,Value:root

 properties文件默認(rèn)的編碼格式居然是ISO-8859-1,這樣導(dǎo)致往配置文件里面寫入中文的時(shí)候轉(zhuǎn)換成另一種格式的編碼,需要把properties 文件的編碼格式改為UTF-8,這樣才會(huì)讓配置文件保存中文數(shù)據(jù)的時(shí)候不會(huì)出現(xiàn)轉(zhuǎn)碼的問(wèn)題

以上所述是小編給大家介紹的Java Property類使用詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • mybatis的association傳遞參數(shù)問(wèn)題示例

    mybatis的association傳遞參數(shù)問(wèn)題示例

    這篇文章主要介紹了mybatis的association傳遞參數(shù)問(wèn)題,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-12-12
  • java使用JWT的方法

    java使用JWT的方法

    這篇文章主要介紹了java使用JWT的方法,JWT是token的一種,一個(gè)JWT字符串包含三個(gè)部分分別是Header、Payload和Signature,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Java實(shí)現(xiàn)升級(jí)版布谷鳥闖關(guān)游戲的示例代碼

    Java實(shí)現(xiàn)升級(jí)版布谷鳥闖關(guān)游戲的示例代碼

    升級(jí)版布谷鳥闖關(guān)游戲是一個(gè)基于java的布谷鳥闖關(guān)游戲,鼠標(biāo)左鍵點(diǎn)擊控制鳥的位置穿過(guò)管道間的縫隙。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-02-02
  • Java使用Collections工具類對(duì)List集合進(jìn)行排序

    Java使用Collections工具類對(duì)List集合進(jìn)行排序

    這篇文章主要介紹了Java使用Collections工具類對(duì)List集合進(jìn)行排序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • SpringMVC如何在生產(chǎn)環(huán)境禁用Swagger的方法

    SpringMVC如何在生產(chǎn)環(huán)境禁用Swagger的方法

    本篇文章主要介紹了SpringMVC如何在生產(chǎn)環(huán)境禁用Swagger的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • HttpClient的DnsResolver自定義DNS解析另一種選擇深入研究

    HttpClient的DnsResolver自定義DNS解析另一種選擇深入研究

    這篇文章主要為大家介紹了HttpClient的DnsResolver自定義DNS解析另一種選擇深入研究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • java 矩陣乘法的mapreduce程序?qū)崿F(xiàn)

    java 矩陣乘法的mapreduce程序?qū)崿F(xiàn)

    這篇文章主要介紹了java 矩陣乘法的mapreduce程序?qū)崿F(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • Java中Math類常用方法代碼詳解

    Java中Math類常用方法代碼詳解

    本文是小編最新給大家整理的關(guān)于Java中Math類常用方法的知識(shí),通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2017-07-07
  • idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn)

    idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn)

    這篇文章主要介紹了idea hibernate jpa 生成實(shí)體類的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 舉例講解Java中數(shù)組和字符串類型的使用方法

    舉例講解Java中數(shù)組和字符串類型的使用方法

    這篇文章主要介紹了舉例講解Java中數(shù)組和字符串類型的使用方法,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09

最新評(píng)論