最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java如何讀寫Properties配置文件(Properties類)

 更新時間:2023年05月12日 15:34:22   作者:Tangable1024  
這篇文章主要介紹了Java如何讀寫Properties配置文件(Properties類),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Java讀寫Properties配置文件

Properties基本介紹

專門用來讀寫配置文件的集合類,Properties類表示一組持久的屬性。 Properties可以保存到流中或從流中加載。 屬性列表中的每個鍵及其對應(yīng)的值都是一個字符串。

屬性列表可以包含另一個屬性列表作為其“默認(rèn)值”; 如果在原始屬性列表中找不到屬性鍵,則會搜索此第二個屬性列表。

因為Properties從繼承Hashtable時, putputAll方法可應(yīng)用于Properties對象。 強(qiáng)烈不鼓勵使用它們,因為它們允許調(diào)用者插入其鍵或值不是Strings 。 應(yīng)該使用setProperty方法。

如果storesave方法在包含非String鍵或值的“受損害” Properties對象上調(diào)用,則調(diào)用將失敗。

類似地,如果在包含非String密鑰的“受損害” Properties對象上調(diào)用propertyNames或list方法的調(diào)用將失敗。

配置文件的格式:鍵 = 值(key = value)

PS:鍵值對不需要有空格,值不需要用引號包起來。默認(rèn)類型為String

properties是配置文件。

主要的作用是通過修改配置文件可以方便地修改代碼中的參數(shù),實現(xiàn)不用改class文件即可靈活變更參數(shù)。

解釋:java運行中java文件會變成class文件,之后無法通過反編譯找到原樣的代碼,這樣的話,如果java類中某個參數(shù)變更,就很難靈活的實現(xiàn)參數(shù)修改,這個時候properties 文件就能很靈活的實現(xiàn)配置,減少代碼的維護(hù)成本和提高開發(fā)效率。

Properties常用方法

  • load()//加載配置文件的鍵值對到Properties對象中
  • list()//將數(shù)據(jù)顯示到指定位置
  • getProperty(key)//根據(jù)鍵獲取值
  • setProperty(key,value)//設(shè)置鍵值對到Properties對象中
  • store()//將Properties中的鍵值對存儲到配置文件之后,在idea中,保存信息到配置文件,如果含有中文,會存儲為unicode碼
  • loadFromXML(InputStream)storeToXML(OutputStream, String, String)//方法以簡單的XML格式加載和存儲屬性。 默認(rèn)情況下,使用UTF-8字符編碼,但是如果需要,可以指定特定編碼。 需要實現(xiàn)支持UTF-8和UTF-16,并可能支持其他編碼。

XML屬性文檔具有以下DOCTYPE聲明:

Properties讀取配置文件

使用Properties類來讀取test.properties文件

  • 1.創(chuàng)建Properties對象
  • 2.加載指定配置文件
  • 3.把鍵值對(k=v)顯示在控制臺
  • 4.根據(jù)key獲取對應(yīng)的value值
import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
public class Test01 {
    public static void main(String[] args) throws IOException {
        //創(chuàng)建Properties對象
        Properties properties = new Properties();
        //加載配置文件
        properties.load(new FileReader("E:\\Java_基礎(chǔ)\\code\\IO流\\src\\test.properties"));
        //將內(nèi)容顯示在控制臺
        properties.list(System.out);
        //通過key獲取value
        String user = properties.getProperty("user");
        String password = properties.getProperty("password");
        System.out.println("用戶名:"+user);
        System.out.println("密碼:"+password);
    }
}

Properties寫入配置文件

使用Properties來創(chuàng)建配置文件并設(shè)置內(nèi)容

  • 1.創(chuàng)建Properties對象
  • 2.創(chuàng)建對應(yīng)的鍵值對setProperty(String key,String value)
  • 3.將鍵值對存儲到指定的配置文件中store(Writer writer, String comments)

PS:如果文件中沒有key,就是創(chuàng)建一對鍵值對,如果該文件有key,就是修改該鍵對應(yīng)的值

import java.io.FileWriter;
import java.io.IOException;
import java.util.Properties;
public class Test02 {
    public static void main(String[] args) throws IOException {
        //創(chuàng)建對象
        Properties properties = new Properties();
        //設(shè)置鍵值對
        properties.setProperty("user","root");
        properties.setProperty("password","abcdef");
        //寫入到指定文件,如果沒有,就創(chuàng)建該文件
        properties.store(new FileWriter("E:\\Java_基礎(chǔ)\\code\\IO流\\src\\demo.properties"),null);
        //如果comments參數(shù)不為空,則首先將ASCII #字符,注釋字符串和行分隔符寫入輸出流。 因此, comments可以作為識別評論。
        //注釋行始終寫入,由ASCII #組成,當(dāng)前日期和時間(如當(dāng)前時間Date的toString方法生成的)以及由Writer生成的行分隔Writer 。
    }
}

properties文件的讀取和寫入

properties文件是一種屬性文件,這種文件以key=value(鍵值對)格式存儲內(nèi)容。Java中可以使用Properties類來讀取這個文件,使用Properties類中的getProperties(key)方法來得到對應(yīng)的數(shù)據(jù)。

一般properties文件作為一些參數(shù)的存儲,使得代碼更加靈活。

properties文件的讀取

(1)使用BufferedInputStream(緩沖輸入流)創(chuàng)建輸入流進(jìn)行讀取,讀取后以key=value(鍵值對)格式存儲數(shù)據(jù)。

代碼實現(xiàn):

?//Properties格式文件的讀取
?? ?//創(chuàng)建輸入流
?? ?try (
?? ? BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\student\\aaa.properties"))) {
?? ??? ?int data =-1;
?? ??? ?while((data=bis.read())!=-1) {
?? ??? ??? ?System.out.print((char)data);
?? ??? ?}
?? ?} catch (IOException e) {
?? ??? ?// TODO Auto-generated catch block
?? ??? ?e.printStackTrace();
?? ?}
?? ?//運行結(jié)果
?? ?//k=12
? ? //b=34
?? ?//c=11

(2)使用Properties類中的load()方法讀取,將“輸入流”加載到Properties集合對象中,根據(jù)key來獲取value的值

代碼實現(xiàn):

try (
?? ? BufferedInputStream bis = new BufferedInputStream(new FileInputStream("D:\\student\\aaa.properties"))) {
?? ??? ?Properties props=new Properties();
?? ??? ? ?props.load(bis);//將“輸入流”加載到Properties集合對象中
?? ??? ? ? ? ? //根據(jù)key,獲取value
?? ??? ??? ??? ?System.out.println(props.get("k"));
?? ?} catch (IOException e) {
?? ??? ?// TODO Auto-generated catch block
?? ??? ?e.printStackTrace();
?? ?}
?? ?//運行結(jié)果
?? ?//12

properties文件的寫入

因為properties文件數(shù)據(jù)是以集合形式存儲,所以可以用put()方法將KV鍵值對存入Properties集合中,再通過輸出流使用store()方法將集合中的臨時數(shù)據(jù),持久化寫入硬盤中存儲。

//properties格式文件的寫入
?? ?try{
?? ??? ?Properties props=new Properties();
?? ??? ?props.put("Q", "123");
?? ??? ?props.put("W", "432");
?? ??? ?props.put("E", "986");
?? ??? ?props.put("R", "457");
?? ?//使用“輸出流”,將properties集合中的KV鍵值對,寫入*.properties文件
?? ? ?try (BufferedOutputStream bos = new BufferedOutputStream(
?? ??? ??? ?new FileOutputStream("D:\\student\\bbb.properties"))) {
?? ??? ?props.store(bos, "just do IT");
?? ? ?}
?? ?} catch (IOException e) {
?? ??? ?e.printStackTrace();
?? ?}
//運行結(jié)果
//?? ?#just do IT
//?? ?#Wed Jun 01 00:14:57 CST 2022
//?? ?W=432
//?? ?R=457
//?? ?Q=123
//?? ?E=986

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • javaSE基礎(chǔ)java自定義注解原理分析

    javaSE基礎(chǔ)java自定義注解原理分析

    這篇文章主要介紹了javaSE基礎(chǔ)對java自定義注解原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多度進(jìn)步,早日升職加薪
    2021-10-10
  • ruoyi-springboot框架新增模塊調(diào)接口報404的解決方案

    ruoyi-springboot框架新增模塊調(diào)接口報404的解決方案

    這篇文章主要介紹了ruoyi-springboot框架新增模塊調(diào)接口報404的解決方案,文中通過代碼示例給大家講解的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Java ArrayList遍歷修改代碼實例解析

    Java ArrayList遍歷修改代碼實例解析

    這篇文章主要介紹了Java ArrayList遍歷修改代碼實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java?try?catch語句異常處理詳解

    Java?try?catch語句異常處理詳解

    這篇文章主要給大家介紹了關(guān)于Java?try?catch語句異常處理的相關(guān)資料,Java中的try-catch用于捕獲和處理異常,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • idea中如何連接hive

    idea中如何連接hive

    這篇文章主要介紹了idea中如何連接hive問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 深入理解Maven環(huán)境搭建和介紹

    深入理解Maven環(huán)境搭建和介紹

    這篇文章主要介紹了深入理解Maven環(huán)境搭建和介紹,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • 解析阿里GTS開源版本fescar分布式事務(wù)

    解析阿里GTS開源版本fescar分布式事務(wù)

    這篇文章主要為大家介紹解析阿里GTS開源版本fescar分布式事務(wù)的原理及使用說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多進(jìn)步
    2022-02-02
  • 詳解java一維數(shù)組及練習(xí)題實例

    詳解java一維數(shù)組及練習(xí)題實例

    在本篇文章里小編給大家整理了關(guān)于java一維數(shù)組及練習(xí)題的相關(guān)知識點和實例代碼,有需要的朋友們跟著學(xué)習(xí)下。
    2019-07-07
  • Spring?Boot與Redis的緩存一致性問題解決

    Spring?Boot與Redis的緩存一致性問題解決

    在使用緩存時,緩存一致性問題是一個常見的挑戰(zhàn),本文主要介紹了Spring?Boot與Redis的緩存一致性問題,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式

    spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式

    這篇文章主要介紹了spring-@Autowired注入與構(gòu)造函數(shù)注入使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12

最新評論

北流市| 观塘区| 石城县| 麻栗坡县| 罗江县| 大庆市| 德安县| 怀来县| 大兴区| 大田县| 兴和县| 甘孜| 克东县| 文安县| 博野县| 泸定县| 宜章县| 大埔县| 图们市| 尼玛县| 柳河县| 息烽县| 张家口市| 九台市| 陇川县| 涞源县| 苍山县| 泽州县| 信宜市| 友谊县| 太仓市| 沅陵县| 新竹县| 鄂伦春自治旗| 连州市| 离岛区| 新田县| 吴川市| 大荔县| 巫山县| 高密市|