java中怎么利用ini4j修改ini配置文件
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,今天就跟大家聊聊有关java中怎么利用ini4j修改ini配置文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。定义:ini文件主要由三部分构
千家信息网最后更新 2025年12月02日java中怎么利用ini4j修改ini配置文件在这里插入图片描述
今天就跟大家聊聊有关java中怎么利用ini4j修改ini配置文件,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
定义:ini文件主要由三部分构成,paramaters、section和comment组成,其中paramaters由键值对构成,用来存储数据,section是一个区块,每个区块下有所属的键值对,comment是注释,对paramaters和section进行标注和解释。
使用工具类ini4j
引入依赖jar包
org.ini4j
ini4j
0.5.4
创建.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 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 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));
}
读取.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> 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> 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> updateData) throws IOException {
Ini ini = new Ini();
ini.load(iniFile);
Section section = null;
Map 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> updateData = new HashMap<>();
Map ldap = new
HashMap<>();
ldap.put("ip","8.8.8.8");
updateData.put("ldap",ldap);
Ini4jUtils.updateIniFile(file,updateData);
Map> 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配置文件有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。
文件
内容
测试
配置
区块
对象
工具
数据
结果
存储
简略
可有可无
下有
图片
多个
实例
所属
更多
注释
知识
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全布置会会议纪要
富士车场服务器需要开什么东西吗
石榴脸网络安全
互联网科技公司 网站
数据库相容性
我的世界服务器发包过多
软件开发单元测试报告怎么写
dspf2812软件开发流程
网络技术的应用图
河南gps卫星授时服务器云主机
网络安全的威胁主要是
外盘期货软件开发公司哪家好
南京智催网络技术
阿里云车型数据库
上海轩和网络技术旗下什么软件
安徽厅服网络技术有限公司
网络技术挑战赛奖金
博弈论网络安全论文
猫鼠服务器下载失败是什么意思
中国电信网络安全责任制
idrac管理戴尔服务器
网络安全法实名制是否强制
道友请留步服务器
小程序专业软件开发商
靠谱的服务器搬迁费用
cf服务器连接电脑没反应
网络安全的威胁主要是
互联网科技创新杂志
南京百信服务器订购
西安ai教育系统开发软件开发