首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java ini4j -从.ini文件读取多个选项

Java ini4j -从.ini文件读取多个选项
EN

Stack Overflow用户
提问于 2013-10-30 15:29:58
回答 3查看 6.1K关注 0票数 1

我正在尝试使用 ini4j读取多个值,文档认为使用Options类应该是可能的。

下面是我的示例.ini文件(./侏儒)

代码语言:javascript
复制
[dopey]
age = 23
fortuneNumber = 11
fortuneNumber = 33
fortuneNumber = 55

这里是读取它的代码

代码语言:javascript
复制
Ini ini = new Ini();
Config conf = new Config();
conf.setMultiOption(true);
ini.setConfig(conf);
ini.load(new FileReader("./dwarfs.ini"));

但是fortuneNumber属性在阅读后只有55,我希望它是一个数组或列表,任何东西。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-31 07:20:31

ini4j项目的web存在包含(除其他外)非常简单的教程。其中一个教程解释了如何检索多个值。当使用返回单个引用的fetch方法时,怎么可能得到一个列表或数组呢?看看API接口

在本教程中,有一部分解释了多个值:

ini4j库引入了MultiMap接口,它扩展了普通映射,但允许每个键的多个值。您可以简单地为给定的键索引值,类似于JavaBeans api中的索引属性。

还有一个例子:

代码语言:javascript
复制
String n1 = sneezy.get("fortuneNumber", 0);  // = 11
String n2 = sneezy.get("fortuneNumber", 1);  // = 22
String n3 = sneezy.get("fortuneNumber", 2);  // = 33
String n4 = sneezy.get("fortuneNumber", 3);  // = 44

在这个例子中,喷嚏是一个Section,但是它也应该与一个Ini一起工作。

为了使其完整:Ini也知道一个方法List<V> getAll(Object key)

票数 2
EN

Stack Overflow用户

发布于 2016-12-27 10:05:16

要在部分中处理多个属性,请使用以下代码:

代码语言:javascript
复制
Ini oINI = new Wini();
Config conf = new Config();
conf.setMultiOption(true);
oINI.setConfig(conf);
oINI.load(new File("....../myfile.ini"));

不要在类创建中直接打开INI文件,先设置选项,否则将不会使用这些选项,默认情况下,MultiOption si设置为"false“。

寻找了一段时间的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2017-04-06 09:28:02

  1. 您首先需要setConfig,然后加载文件。
  2. 需要使用List来处理多个相同的值。

这里的例子是:

代码语言:javascript
复制
Ini ini = new Wini();

Config config = new Config();
config.setMultiOption(true);
config.setMultiSection(true);

ini.setConfig(config);   //set config

ini.load(new File(filename));      // load AFTER setConfig

for (String sectionName : ini.keySet()) {
    List<Section> sectionList = ini.getAll(sectionName);  // use List
    for (Section section : sectionList) {
        for (String optionName : section.keySet()) {
            List<String> optionList = section.getAll(optionName);
            for (String optionVaule : optionList) {
                System.out.printf("%s %s %s\n", sectionName, optionName, optionVaule);
            }
        }
    }
}

在这里输出:

代码语言:javascript
复制
dopey age 23
dopey fortuneNumber 11
dopey fortuneNumber 33
dopey fortuneNumber 55
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19687066

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档