加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – ini4j store方法更改注释字符

发布时间:2020-12-15 02:10:45 所属栏目:Java 来源:网络整理
导读:我想在ini文件的一部分中更改密钥的条目.我使用的是ini4j库.所以我写了下面的代码.我可以更改条目,但也有其他我不想要的更改: 更换“;”用“#”表示注释行 在部分和注释之间添加空行 那我怎么解决呢? 这是我的预期: [section1]key1=40key2=30[section2]ke
我想在ini文件的一部分中更改密钥的条目.我使用的是ini4j库.所以我写了下面的代码.我可以更改条目,但也有其他我不想要的更改:

>更换“;”用“#”表示注释行
>在部分和注释之间添加空行

那我怎么解决呢?

这是我的预期:

[section1]
key1=40
key2=30
[section2]
key1=10
key2=20
;section3
[section3]
key1=10
key2=20

这是编辑后的文件:

[section1]
key1=40
key2=30

[section2]
key1=10
key2=20

#section3

[section3]
key1=10
key2=20

我的代码:

public static void setEntry(String filePath,String fileName,String sectionName,String keyName,String entry)
        throws IOException {
    String path = filePath.concat(fileName);
    FileInputStream inputStream = null;
    try {
        inputStream = new FileInputStream(path);
        Ini ini = new Ini(inputStream);
        ini.getConfig().setStrictOperator(true);
        Section section = ini.get(sectionName);
        if (section != null) {
            if (section.containsKey(keyName)) {
                section.put(keyName,entry);
            }
            else {
                section.add(keyName,entry);
            }
        }
        else {
            section = ini.add(sectionName);
            section.add(keyName,entry);
        }

        File iniFile = new File(path);
        ini.store(iniFile);
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    finally {
        inputStream.close();
    }
}

有没有办法更改默认评论字符?

解决方法

显然,即使ini4j可以阅读评论;和#,当你必须将它们写入ini文件时,它不会保存.

如果你检查ini4j项目的AbstractFormatter类,你可以看到写入时唯一的注释操作符是#,如果你有权访问源代码,你可以使用自定义注释操作符更改它并且应该可以工作.

abstract class AbstractFormatter implements HandlerBase
{
    private static final char OPERATOR = '=';
    private static final char COMMENT = '#';    // <--- change this to ';'
    ...

至于空行,它们只是美学.同样,你可以自己编辑它(注释this和this行?),但是如果你只是在这个库生成后重新格式化你的ini文件并删除所有空的话,我想会更容易线.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读