亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java中怎么利用ini4j修改ini配置文件

發布時間:2021-06-30 17:36:55 來源:億速云 閱讀:516 作者:Leah 欄目:大數據

今天就跟大家聊聊有關java中怎么利用ini4j修改ini配置文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

定義:ini文件主要由三部分構成,paramaters、section和comment組成,其中paramaters由鍵值對構成,用來存儲數據,section是一個區塊,每個區塊下有所屬的鍵值對,comment是注釋,對paramaters和section進行標注和解釋。

使用工具類ini4j

  • 引入依賴jar包
<dependency>
    <groupId>org.ini4j</groupId>
    <artifactId>ini4j</artifactId>
    <version>0.5.4</version>
</dependency>
 
  • 創建.ini文件的實例對象(可有可無,我這是為了測試方便)
@Data
@AllArgsConstructor
@NoArgsConstructor
public class IniFileEntity {
    private String section;
    private String key;
    private String value;
}
 
  • 創建.ini文件
//我把這個寫在了工具類里面(Ini4jUtils)
public static boolean creatIniFile(String filePath,List<IniFileEntity> filecontent) throws IOException {
    File file = new File(filePath);
    if(file.exists()){
        return false;
    }
    file.createNewFile();
    Ini ini = new Ini();
    ini.load(file);

    //將文件內容保存到ini對象中
    filecontent.stream().forEach((entity)->{
        ini.add(entity.getSection(),entity.getKey(),entity.getValue()== null ? "": entity.getValue());
    });
    //將文件內容保存到文件中
    ini.store(file);
    return true;
}
//  測試
@Test
public void test(){
    List<IniFileEntity> list = Arrays.asList(new IniFileEntity("ldap","ip","1.1.1.1"),
                                             new IniFileEntity("ldap","ipPort","8567"),
                                             new IniFileEntity("test","isUsed","true"));
    System.out.println(Ini4jUtils.creatIniFile("D:\\abc\\test.ini",list));
}
 
java中怎么利用ini4j修改ini配置文件  
在這里插入圖片描述
  • 讀取.ini文件
/**
 * 存儲文件中的內容
 */
@Data
public class Ini4jFileVo {
    private String ip;
    private String ipPort;
    private String isUsed;
}

/**
* 讀取ini文件的內容
* @param iniFile ini文件
* @param fileContent ini文件中的key對應文件中的section,value對應i你文件section下的一個或多個key值
* @return
* @throws IOException
* @throws NoSuchFieldException
* @throws IllegalAccessException
*/
public static Ini4jFileVo readIniFile(File iniFile, Map<String,List<String>> fileContent) throws IOException, NoSuchFieldException, IllegalAccessException {
    Ini4jFileVo fileVo = new Ini4jFileVo();
    Ini ini = new Ini();
    ini.load(iniFile);
    Section section = null;
    Field field = null;
    for(String key : fileContent.keySet()){
        section = ini.get(key);
        for (String value: fileContent.get(key)) {
            field = fileVo.getClass().getDeclaredField(value);
            field.setAccessible(true);
            field.set(fileVo, section.get(value));
        }
    }

    /**
      * 這個是簡略版的
      *    Section section = ini.get("ldap");
      *  fileVo.setIp(section.get("ip"));
      *   fileVo.setIpPort(section.get("port" ));
      *
      *  section = ini.get("test");
      *   fileVo.setIsUsed(section.get("isUsed"));
      */
    return fileVo;
}

//測試
@Test
public void testReadFile(){
    File file = new File("D:\\abc\\test.ini");
    Map<String,List<String>> fileContent = new HashMap<>();
    fileContent.put("ldap",Arrays.asList("ip","ipPort"));
    fileContent.put("test",Arrays.asList("isUsed"));
    Ini4jFileVo fileVo = Ini4jUtils.readIniFile(file,fileContent);
    System.out.println(fileVo);
}

//打印結果----Ini4jFileVo(ip=1.1.1.1, ipPort=8567, isUsed=true)
 
  • 修改.ini文件
/**
* 修改文件內容
* @param iniFile ini文件
* @param updateData 更新的數據
* @throws IOException
*/
public static void updateIniFile(File iniFile,Map<String,Map<String,String>> updateData) throws IOException {
    Ini ini = new Ini();
    ini.load(iniFile);
    Section section = null;
    Map<String,String> dataMap = null;
    for (String sect : updateData.keySet()){
        section = ini.get(sect);
        dataMap = updateData.get(sect);
        for (String key : dataMap.keySet()){
            section.put(key,dataMap.get(key) == null ? "" :
            dataMap.get(key));
        }
    }
    ini.store(iniFile);
}

@Test
public void testUpdateFile(){
    //修改
    File file = new File("D:\\abc\\test.ini");
    Map<String,Map<String,String>> updateData = new HashMap<>();
    Map<String,String> ldap = new
    HashMap<>();
    ldap.put("ip","8.8.8.8");
    updateData.put("ldap",ldap);
    Ini4jUtils.updateIniFile(file,updateData);


    Map<String,List<String>> fileContent = new HashMap<>();
    fileContent.put("ldap",Arrays.asList("ip","ipPort"));
    fileContent.put("test",Arrays.asList("isUsed"));
    Ini4jFileVo fileVo = Ini4jUtils.readIniFile(file,fileContent);
    System.out.println(fileVo);
}

//測試結果----Ini4jFileVo(ip=8.8.8.8, ipPort=8567, isUsed=true)

看完上述內容,你們對java中怎么利用ini4j修改ini配置文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

衡阳县| 凤庆县| 醴陵市| 康定县| 定远县| 奉新县| 上虞市| 阿克陶县| 基隆市| 鹤山市| 秦皇岛市| 信阳市| 余庆县| 苏尼特左旗| 招远市| 墨竹工卡县| 遂平县| 清水县| 安平县| 滁州市| 元谋县| 吴忠市| 彩票| 陈巴尔虎旗| 新建县| 陆丰市| 韶山市| 茶陵县| 桦甸市| 巴彦淖尔市| 宝坻区| 延边| 苍溪县| 永城市| 阿坝| 忻城县| 东至县| 景宁| 富裕县| 景泰县| 福建省|