国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java代碼讀取properties配置文件

這篇具有很好參考價(jià)值的文章主要介紹了Java代碼讀取properties配置文件。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

讀取properties配置文件

package com.easycrud.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @BelongsProject: EasyCrud
 * @BelongsPackage: com.easycrud.utils
 * @Author: xpx
 * @Email: 2436846019@qq.com
 * @CreateTime: 2023-05-02  16:05
 * @Description: 讀取properties配置文件工具類
 * @Version: 1.0
 */

public class PropertiesUtils {
    private static Properties props = new Properties();
    private static Map<String,String> PROPER_MAP = new ConcurrentHashMap<String, String>();

    /**
     * 項(xiàng)目初始化時(shí)就去讀取配置文件
     */
    static {
        InputStream is = null;
        try{
            is = PropertiesUtils.class.getClassLoader().getResourceAsStream("application.properties");
            props.load(is);

            Iterator<Object> iterator = props.keySet().iterator();
            while (iterator.hasNext()){
                String key = (String) iterator.next();
                PROPER_MAP.put(key,props.getProperty(key));
            }
        }catch (Exception e){

        }finally {
            if (is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }

    /**
     * 對外提供方法通過key取值
     * @param key
     * @return
     */
    public static String getString(String key) {
        return PROPER_MAP.get(key);
    }

    /**
     * 測試能否成功取值
     * @param args
     */
    public static void main(String[] args) {
        System.out.println("測試打?。?+getString("db.driver.name"));
    }
}

輔助閱讀

Properties

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

ConcurrentHashMap

HashTable是一個(gè)線程安全的類,它使用synchronized來鎖住整張Hash表來實(shí)現(xiàn)線程安全,即每次鎖住整張表讓線程獨(dú)占,相當(dāng)于所有線程進(jìn)行讀寫時(shí)都去競爭一把鎖,導(dǎo)致效率非常低下。ConcurrentHashMap可以做到讀取數(shù)據(jù)不加鎖,并且其內(nèi)部的結(jié)構(gòu)可以讓其在進(jìn)行寫操作的時(shí)候能夠?qū)㈡i的粒度保持地盡量地小,允許多個(gè)修改操作并發(fā)進(jìn)行,其關(guān)鍵在于使用了鎖分段技術(shù)。它使用了多個(gè)鎖來控制對hash表的不同部分進(jìn)行的修改。對于JDK1.7版本的實(shí)現(xiàn), ConcurrentHashMap內(nèi)部使用段(Segment)來表示這些不同的部分,每個(gè)段其實(shí)就是一個(gè)小的Hashtable,它們有自己的鎖。只要多個(gè)修改操作發(fā)生在不同的段上,它們就可以并發(fā)進(jìn)行。JDK1.8的實(shí)現(xiàn)降低鎖的粒度,JDK1.7版本鎖的粒度是基于Segment的,包含多個(gè)HashEntry,而JDK1.8鎖的粒度就是HashEntry(首節(jié)點(diǎn))。

static

static代碼塊一般用于初始化類中的靜態(tài)變量,該靜態(tài)代碼塊在類加載過程中的初始化階段執(zhí)行,并且只執(zhí)行一次。

InputStream

字節(jié)輸入流。

try...cache...finally

try{

? 可能發(fā)生異常的代碼

}catch(可能發(fā)生的異常類型 異常對象名){

? 當(dāng)前異常類型的處理方式

}finally{

? 一定要執(zhí)行的代碼

}

IOException

IOException 是在使用流、文件和目錄訪問信息時(shí)引發(fā)的異常的基類

e.printStackTrace()

在命令行打印異常信息在程序中出錯(cuò)的位置及原因。

Class.getClassLoader().getResourceAsStream()

Class是當(dāng)前類的Class對象,Class.getClassLoader()是獲取當(dāng)前類的類加載器。類加載器的大概作用是當(dāng)需要使用一個(gè)類時(shí),加載該類的".class"文件,并創(chuàng)建對應(yīng)的class對象,將class文件加載到虛擬機(jī)的內(nèi)存。getResourceAsStream()是獲取資源的輸入流。類加載器默認(rèn)是從classPath路徑加載資源。

load()

Properties的方法是逐行讀取properties配置文件,分隔成兩個(gè)字符串key和value,將他們放進(jìn)Properties對象中。

Iterator

迭代器 it 的三個(gè)基本操作是 next 、hasNext 和 remove。

調(diào)用 it.next() 會(huì)返回迭代器的下一個(gè)元素,并且更新迭代器的狀態(tài)。

調(diào)用 it.hasNext() 用于檢測集合中是否還有元素。

調(diào)用 it.remove() 將迭代器返回的元素刪除。

keySet()

如果有一個(gè)Map對象,可以使用 map.keySet()方法獲取所有的key值。

A=xxx.iterator()

獲取迭代器保存在A中。文章來源地址http://www.zghlxwxcb.cn/news/detail-431860.html

到了這里,關(guān)于Java代碼讀取properties配置文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • war包讀取properties配置文件錯(cuò)誤,返回null

    現(xiàn)象:使用intellij Idea編寫java項(xiàng)目,debug調(diào)試時(shí),使用redis.properties文件的類A,A的代碼可以使用 “InputStream in = RedisUtils.class.getClass().getResourceAsStream(\\\"/\\\" + proPath);” 方式正常讀取redis.properties配置文件;但當(dāng)打包為war包,A同樣的代碼方式讀取失敗,返回null 原因:debug時(shí)取的是絕

    2024年02月15日
    瀏覽(16)
  • 解決.properties文件中文讀取亂碼問題(idea Java)

    解決.properties文件中文讀取亂碼問題(idea Java)

    1、原始代碼 未加讀取.properties文件的規(guī)則 debug運(yùn)行截圖: 2、加入.properties讀取規(guī)則 debug截圖: 至此 問題已解決!

    2024年02月16日
    瀏覽(17)
  • 【SpringBoot】兩種配置文件, 詳解 properties 和 yml 的語法格式, 使用方式, 讀取配置

    【SpringBoot】兩種配置文件, 詳解 properties 和 yml 的語法格式, 使用方式, 讀取配置

    各位讀者好, 我是小陳, 這是我的個(gè)人主頁, 希望我的專欄能夠幫助到你: ?? JavaSE基礎(chǔ): 基礎(chǔ)語法, 類和對象, 封裝繼承多態(tài), 接口, 綜合小練習(xí)圖書管理系統(tǒng)等 ?? Java數(shù)據(jù)結(jié)構(gòu): 順序表, 鏈表, 堆, 二叉樹, 二叉搜索樹, 哈希表等 ?? JavaEE初階: 多線程, 網(wǎng)絡(luò)編程, TCP/IP協(xié)議, HTTP協(xié)議

    2024年02月10日
    瀏覽(24)
  • 【Spring教程十】Spring框架實(shí)戰(zhàn):全面深入詳解IOC/DI之--純注解開發(fā)模式下的依賴注入&&注解讀取properties配置文件

    【Spring教程十】Spring框架實(shí)戰(zhàn):全面深入詳解IOC/DI之--純注解開發(fā)模式下的依賴注入&&注解讀取properties配置文件

    歡迎大家回到《 Java教程之Spring30天快速入門》,本教程所有示例均基于Maven實(shí)現(xiàn),如果您對Maven還很陌生,請移步本人的博文《 如何在windows11下安裝Maven并配置以及 IDEA配置Maven環(huán)境》,本文的上一篇為《 全面深入詳解IOC/DI注解開發(fā)》 Spring為了使用注解簡化開發(fā),并沒有提供

    2024年02月04日
    瀏覽(25)
  • 第9章-第1節(jié)-關(guān)于Java中properties配置文件的介紹

    properties類也是基于流,不算很難,下面直接上代碼: 關(guān)于工廠模式+反射+properties的案例,可以看這篇文件章:Java設(shè)計(jì)模式之工廠模式 本電子目錄:?《Java基礎(chǔ)的重點(diǎn)知識(shí)點(diǎn)全集》

    2024年01月20日
    瀏覽(21)
  • java 逐行讀取文件(讀取文件每一行、按行讀取文件)附帶示例代碼

    最快的讀取每一行 相比較Scanner慢一點(diǎn) 行數(shù)達(dá)到一定規(guī)模,使用此方法讀取會(huì)非常慢 一次把所有數(shù)據(jù)都讀到內(nèi)存中,當(dāng)文件非常大時(shí),會(huì)消耗掉內(nèi)存資源導(dǎo)致程序崩掉,文件規(guī)模小推薦使用 統(tǒng)計(jì)每一行日志ip出現(xiàn)的次數(shù)

    2024年02月11日
    瀏覽(56)
  • Spring Boot讀取yml或者properties配置信息

    Spring Boot讀取yml或者properties配置信息

    編寫配置類 開始使用

    2024年02月14日
    瀏覽(25)
  • 【Java】讀取 springboot 配置文件內(nèi)容的幾種方法

    Spring Boot 是一個(gè)非常流行的 Java Web 開發(fā)框架,它提供了大量的便捷功能和特性,其中讀取配置文件是其中的一項(xiàng)重要功能。Spring Boot 支持多種方式讀取配置文件,本文將介紹 Spring Boot 讀取配置文件的原理和常用方法。 Spring Boot 讀取配置文件的原理是通過 Spring Boot 的自動(dòng)配置

    2024年02月15日
    瀏覽(22)
  • Java:讀取excel文件中的內(nèi)容(簡單、詳細(xì)、明確、有全部代碼)

    注意: jxl 僅支持讀取 .xls 文件,讀 .xlsx 會(huì)報(bào)錯(cuò)! 在 pom.xml 中引入 jxl 的依賴 支持讀取 xlsx 文件的 poi 依賴說明、使用方法及更多詳細(xì)內(nèi)容可以參考: Java讀取excel的方式,一篇文章看懂(詳細(xì))

    2024年02月12日
    瀏覽(35)
  • JAVA-9-[SpringBoot]非web應(yīng)用程序創(chuàng)建和配置文件讀取

    SpringBoot 常用讀取配置文件的 3 種方法! Spring Boot非web應(yīng)用程序的創(chuàng)建方式 有時(shí)有些項(xiàng)目不需要提供web服務(wù),比如跑定時(shí)任務(wù)的項(xiàng)目,如果都是按照web項(xiàng)目啟動(dòng),這個(gè)時(shí)候會(huì)浪費(fèi)一些資源。 1、Spring CommandLinerunner接口實(shí)現(xiàn)booot入口類; 2、run()方法覆蓋commandlineruner接口,在run方

    2023年04月08日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包