java 读写 xxx.ini

本文介绍如何使用Java读取和修改INI配置文件,通过具体示例展示了如何更改my.ini文件中的bind-address值。

偶然在网上找到java可以读写xxx.ini文件

1、首先你需要了解xxx.ini配置文件的组成,如下:

格式

INI文件由节、键、值组成。

[section]

参数(键=值)

name=value

2、其次你得去网上下载inieditor-r2.jar或者inieditor.jar

下面以java程序读写取MySQL中配置文件my.ini文件(实现把my.ini文件拷贝到了我建立工程的目录下了)为例子:

注意my.ini文件中包含如下信息:

[mysqld]

# The TCP/IP Port the MySQL Server will listen on
bind-address = 127.0.0.1
port = 3306

我们的目的是修改[mysqld]下的bind-address的值:具体修改如下

/*
 * @class MyINIContext.java
 * @author ccfeng
 * @date 2013-4-2
 * 
 *
 */
package com;
import java.io.IOException;
import ch.ubique.inieditor.IniEditor;


public class MyINIContext {
public final static String DEFAULT_SETTING = "my.ini";
private static IniEditor iniEditor = new IniEditor();
static {
try {
iniEditor.load(DEFAULT_SETTING);
} catch (IOException e) {
e.printStackTrace();
}
}

public static String getValue(String section,String key){
return iniEditor.get(section, key);
}
public static void saveOrUpdate(String section,String key,String value){
iniEditor.set(section, key, value);
try {
iniEditor.save(DEFAULT_SETTING);
} catch (IOException e) {
e.printStackTrace();
}
}

//TEST
public static void main(String[] args) {
String ip = getValue("mysqld", "bind-address");
System.out.println(ip);
saveOrUpdate("mysqld", "bind-address","192.168.0.103");
ip =getValue("mysqld", "bind-address");
System.out.println(ip);
}
}


输出结果:

127.0.0.1
192.168.0.103


<think>我们正在解决IDEA中运行Run 'xxx' with Coverage后,覆盖结果既不是红色(未覆盖)也不是绿色(已覆盖)的问题。根据引用内容,常见原因是临时目录路径包含非ASCII字符(如中文)导致覆盖率报告生成异常。以下是综合引用[1][2][3]的解决方案: ### 解决方案 1. **修改临时文件路径** 在IDEA安装目录的`bin`文件夹下,修改`idea.exe.vmoptions`(或`idea64.exe.vmoptions`)文件: - 添加一行:`-Djava.io.tmpdir=新临时目录路径`(例如:`-Djava.io.tmpdir=D:\Temp`) - **注意**: - 新路径必须为全英文且文件夹需提前创建。 - 如无法修改文件,可通过IDEA界面操作: `Help → Edit Custom VM Options` 添加相同内容后重启IDEA[^1][^2][^3]。 2. **检查系统环境变量** 确保系统变量`TMP`和`TEMP`也指向英文路径(控制面板 → 系统 → 高级系统设置 → 环境变量)。 3. **重启IDEA** **必须完全重启IDEA**使配置生效[^3]。 ### 原理说明 覆盖率测试工具依赖临时文件,若路径含中文等非ASCII字符,会导致文件读写异常,进而使覆盖结果无法正确着色[^2][^3]。 §§相关问题§§ 1. 如何验证IDEA的临时目录是否配置成功? 2. 除了修改临时目录,还有哪些方法能解决覆盖率测试异常? 3. 为什么代码覆盖率结果会显示部分覆盖(黄色)? </think>### 解决 Run 'xxx' with Coverage 后结果既非红色也非绿色的方案 根据提供的引用资料,该问题通常是由**系统临时目录路径包含非ASCII字符(如中文)**导致的覆盖率报告生成异常。以下是具体解决方案: #### ⚠️ 核心解决方法 1. **修改临时文件目录路径** - 打开IDEA安装目录下的配置文件: - 找到 `bin/idea64.exe.vmoptions`(64位系统)或 `bin/idea.exe.vmoptions`(32位系统) - 在文件末尾添加: ```ini -Djava.io.tmpdir=D:\Temp ``` (`D:\Temp`可替换为任意**纯英文路径**的目录) - **必须创建该目录**(如手动新建D:\Temp文件夹) 2. **通过IDEA界面修改(推荐)** ```mermaid graph LR A[Help菜单] --> B[Edit Custom VM Options] B --> C[打开配置文件] C --> D[添加 -Djava.io.tmpdir=英文路径] D --> E[重启IDEA] ``` 3. **检查系统环境变量** - 确保系统变量 `TMP` 和 `TEMP` 的值均为**纯英文路径** - 修改位置:控制面板 → 系统 → 高级系统设置 → 环境变量 #### 🔧 操作注意事项 1. **路径要求**: - 路径必须全英文(如 `C:\CoverageTemp`) - 禁止包含中文/俄文等非ASCII字符(引用[2]明确说明此问题) - 目录需提前手动创建 2. **生效条件**: - 修改后**必须完全重启IDEA**(引用[3]强调该要点) - 验证是否生效:执行后应看到标准覆盖率着色(绿色/红色) > 根本原因:覆盖率代理程序 `CoveragePremain` 在非ASCII路径下会生成损坏的临时文件(引用[2]中提到的 `CoveragePremain.premain` 报错与此直接相关)[^2][^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值