亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

快速上手Java中的Properties集合類

 更新時(shí)間:2023年02月06日 11:57:56   作者:墨辰JC  
java.util.Properties集合繼承于Hashtable,來(lái)表示一個(gè)持久的屬性集,他使用鍵值結(jié)構(gòu)存儲(chǔ)數(shù)據(jù),每個(gè)鍵及其對(duì)應(yīng)的值都是一個(gè)字符串,該類被許多java類使用,下面這篇文章主要給大家介紹了關(guān)于如何快速上手Java中Properties集合類的相關(guān)資料,需要的朋友可以參考下

概念

Java中的Properties文件是一種配置文件,主要用于表達(dá)配置信息,格式是文本文件。該類主要用于讀取Java的配置文件,也可以對(duì)properties文件進(jìn)行修改

屬性配置:以“鍵=值”的方式書寫一個(gè)屬性的配置信息
注 釋:在properties文件中,可以用“#”來(lái)注釋

為什么需要Properties類?

將一些固定修改的內(nèi)容放到Properties文件,如果我們將這些內(nèi)容放到程序里面(比如:賬號(hào)、密碼),假如說(shuō)這些內(nèi)容需要改變,意味著需要對(duì)源程序進(jìn)行修改(修改源碼);當(dāng)再次運(yùn)行的時(shí)候,需要進(jìn)行重新編譯或運(yùn)行在第三方(當(dāng)程序工程量大的時(shí)候,會(huì)浪費(fèi)大量資源,靈活性差)

Properties類可以很輕松的理解和修改它們

傳統(tǒng)的方法(不使用Properties類)

split方法是String類中,用于分割字符串,將分割的字符串變成字符串?dāng)?shù)組

test.Properties文件的內(nèi)容

ip=192.168.1.100
user=root
pwd=123456

讀取test.properties文件,并獲取相應(yīng)的ip user pwd

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Properties01 {
    public static void main(String[] args) {       
        BufferedReader bufferedReader = null;
        try {
            bufferedReader = new BufferedReader(new FileReader("src\\test.properties"));
            String line = "";
            while ((line = bufferedReader.readLine()) !=null){
                String[] split = line.split("=");
                System.out.println(split[0]+"值是:"+split[1]);
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

控制臺(tái)輸出如下:
ip值是:192.168.1.100
user值是:root
pwd值是:123456

傳統(tǒng)方法解決并不是很方便,需要遍歷循環(huán),如果要獲取文件中指定的某個(gè)內(nèi)容,這時(shí)候需要用到Properties類

Properties

Properties 繼承于 Hashtable。表示一個(gè)持久的屬性集.屬性列表中每個(gè)鍵及其對(duì)應(yīng)值都是一個(gè)字符串。

  • 專門用于讀取配置文件的集合類

配置文件格式:

鍵=值

  • 鍵=值鍵值對(duì)不需要由空格,值不需要用引號(hào)括起來(lái),默認(rèn)類型是String

該類提供了兩個(gè)構(gòu)造器

常見Properties調(diào)用方法

  • load:加載配置文件的鍵值對(duì)到Properties對(duì)象

  • list:將數(shù)據(jù)顯示到指定設(shè)備

  • getProperties(key):根據(jù)鍵獲取值
  • setProperties(key,value):設(shè)置鍵值對(duì)到Properties對(duì)象
  • store:將Properties中的鍵值對(duì)存儲(chǔ)到配置文件中(如果已存在則覆蓋),在IDEA編譯器中,保存信息到配置文件,如果含有中文,會(huì)存儲(chǔ)Unicode編碼格式

編碼查詢工具網(wǎng)站

更多具體方法可在JDK文檔或百度進(jìn)行查看

示例

1.演示使用Properties類讀取test.properties文件的內(nèi)容

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;

public class Properties02 {
    public static void main(String[] args) {
        //創(chuàng)建Properties對(duì)象
        Properties properties = new Properties();
        //加載指定的配置文件
        try {
            properties.load(new FileReader("src\\test.properties"));
            //把鍵值對(duì)顯示到控制臺(tái)
            properties.list(System.out);
            System.out.println("===根據(jù)鍵獲取對(duì)應(yīng)的值===");
            System.out.println(properties.getProperty("ip"));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

– listing properties –
user=root
pwd=123456
ip=192.168.1.100
=根據(jù)鍵獲取對(duì)應(yīng)的值=
192.168.1.100

2.使用Properties類添加鍵值對(duì)到文件test.properties中

import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class Properties03 {
    public static void main(String[] args) {
        Properties properties = new Properties();
        properties.setProperty("charset", "UTF-8");
        properties.setProperty("user", "jack");
        properties.setProperty("pwd", "123456");
        try {
            properties.store(new FileWriter("src\\test.properties"), null);
            //第二個(gè)參數(shù),表示注釋信息(null表示沒(méi)有注釋)
            System.out.println("保存配置文件成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

此時(shí)test.properties文件的內(nèi)容為
#Tue Jan 17 18:31:36 CST 2023
user=jack
pwd=123456
charset=UTF-8
注意:如果保存的內(nèi)容是中文,則存放的格式是Unicode編碼

3.完成對(duì)test.properties文件的讀取,并修改某個(gè)鍵值對(duì)

注意:使用setProperty方法,如果key不存在則創(chuàng)建,反之存在,則修改

import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;

public class Properties04 {
    public static void main(String[] args) {
        Properties properties = new Properties();
        properties.setProperty("charset", "UTF-8");
        properties.setProperty("user", "jack");
        properties.setProperty("pwd", "123456");

        properties.setProperty("user", "tom");
        properties.setProperty("pwd", "888888");
        try {
            properties.store(new FileWriter("src\\test.properties"), null);
            System.out.println("保存配置文件成功");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

此時(shí)文件內(nèi)容為:
#Tue Jan 17 18:45:04 CST 2023
user=tom
pwd=888888
charset=UTF-8

setProperty操作時(shí)底層源碼(父類Hashtable中的方法,可忽略)

public synchronized V put(K key, V value) {
    // Make sure the value is not null
    if (value == null) {
        throw new NullPointerException();
    }

    // Makes sure the key is not already in the hashtable.
    Entry<?,?> tab[] = table;
    int hash = key.hashCode();
    int index = (hash & 0x7FFFFFFF) % tab.length;
    @SuppressWarnings("unchecked")
    Entry<K,V> entry = (Entry<K,V>)tab[index];
    for(; entry != null ; entry = entry.next) {
        if ((entry.hash == hash) && entry.key.equals(key)) {
            V old = entry.value;
            entry.value = value;
            return old;
        }
    }

    addEntry(hash, key, value, index);
    return null;
}

總結(jié)

到此這篇關(guān)于Java中Properties集合類的文章就介紹到這了,更多相關(guān)Java Properties集合類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring定時(shí)任務(wù)注解@Scheduled詳解

    Spring定時(shí)任務(wù)注解@Scheduled詳解

    這篇文章主要介紹了Spring定時(shí)任務(wù)注解@Scheduled詳解,@Scheduled注解是包org.springframework.scheduling.annotation中的一個(gè)注解,主要是用來(lái)開啟定時(shí)任務(wù),本文提供了部分實(shí)現(xiàn)代碼與思路,需要的朋友可以參考下
    2023-09-09
  • 谷歌二維碼引擎com.google.zxing二維碼生成與解析

    谷歌二維碼引擎com.google.zxing二維碼生成與解析

    這篇文章主要給大家介紹了關(guān)于谷歌二維碼引擎com.google.zxing二維碼生成與解析的相關(guān)資料,zxing是google開源的二維碼生成和解析工具,需要的朋友可以參考下
    2023-07-07
  • Spring基于注解管理bean實(shí)現(xiàn)方式講解

    Spring基于注解管理bean實(shí)現(xiàn)方式講解

    很多時(shí)候我們需要根據(jù)不同的條件在容器中加載不同的Bean,或者根據(jù)不同的條件來(lái)選擇是否在容器中加載某個(gè)Bean,這就是Bean的加載控制,一般我們可以通過(guò)編程式或注解式兩種不同的方式來(lái)完成Bean的管理
    2023-01-01
  • java 將數(shù)據(jù)加載到內(nèi)存中的操作

    java 將數(shù)據(jù)加載到內(nèi)存中的操作

    這篇文章主要介紹了java 將數(shù)據(jù)加載到內(nèi)存中的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-09-09
  • mybatis-plus查詢?cè)创a詳解

    mybatis-plus查詢?cè)创a詳解

    這篇文章主要介紹了mybatis-plus查詢?cè)创a解讀,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java驗(yàn)證碼圖片生成代碼

    Java驗(yàn)證碼圖片生成代碼

    這篇文章主要為大家詳細(xì)介紹了Java驗(yàn)證碼圖片生成代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 圖文并茂講解RocketMQ消息類別

    圖文并茂講解RocketMQ消息類別

    這篇文章主要介紹了圖文并茂講解RocketMQ消息類別,RocketMQ對(duì)于消息提供了很多用法,包括:同步消息、異步消息、單向發(fā)送、順序消息、延時(shí)消息、批量消息、過(guò)濾消息、事務(wù)消息等
    2022-12-12
  • 解決shiro 定時(shí)監(jiān)聽器不生效的問(wèn)題 onExpiration不調(diào)用問(wèn)題

    解決shiro 定時(shí)監(jiān)聽器不生效的問(wèn)題 onExpiration不調(diào)用問(wèn)題

    這篇文章主要介紹了解決shiro 定時(shí)監(jiān)聽器不生效的問(wèn)題 onExpiration不調(diào)用問(wèn)題。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 無(wú)感NullPointerException的值相等判斷方法

    無(wú)感NullPointerException的值相等判斷方法

    當(dāng)我們需要去判斷一個(gè)?入?yún)?查庫(kù)?返回的開關(guān)變量(通常是個(gè)Integer類型的)時(shí),常常會(huì)寫如下的if-else判斷語(yǔ)句。但又會(huì)為在生產(chǎn)環(huán)境看到的「NullPointerException」感到困擾,遇到這個(gè)問(wèn)題如何處理呢,下面小編通過(guò)本文給大家詳細(xì)講解,需要的朋友參考下吧
    2023-02-02
  • Java 抽象類特點(diǎn)總結(jié)

    Java 抽象類特點(diǎn)總結(jié)

    在面向?qū)ο蟮母拍钪?,所有的?duì)象都是通過(guò)類來(lái)描繪的,但是反過(guò)來(lái),并不是所有的類都是用來(lái)描繪對(duì)象的,如果一個(gè)類中沒(méi)有包含足夠的信息來(lái)描繪一個(gè)具體的對(duì)象,這樣的類就是抽象類
    2021-10-10

最新評(píng)論