如何使用ini4j将多个选项读入列表或数组?

时间:2017-10-23 15:45:02

标签: java arrays ini4j

我想要一个INI文件,其中包含一组带有相同选项键的选项值的部分。在其他方面,我想在ini文件中表示一个数组。我的问题是,只有最后一个值被读入数组或侦听器,具体取决于我使用的 getAll 方法:

.ini文件:

{"email":"test@test.com"}

下面的Java代码并没有为我提供选项密钥 ftpAccount 的所有选项值:

[FTP]
; Access FTP server?
active = false
file.pattern = VA_.*.(csv|dat)$
#file.pattern = VA_.*(\\.(?i)(csv|dat))$
delete.after.download = false

[SFTP]
; Access FTP server?
active = true
file.pattern = VA_.*.(csv|dat)$
#file.pattern = VA_.*(\\.(?i)(csv|dat))$
delete.after.download = false

[SMB]
; Access SMB target?
active = false

[SCP]
; Access SCP target?
active = false

[FTP_Accounts]
ftpAccount = /aaa/xxx
ftpAccount = /bbb/xxx
ftpAccount = /ccc/xxx
ftpAccount = /ddd/xxx
ftpAccount = /eee/xxx
ftpAccount = /fff/xxx

我以为我可以将getAll调用的所有选项值都放到数组中。

1 个答案:

答案 0 :(得分:0)

感谢问题https://stackoverflow.com/users/7345335/philippe-cerou中的Java ini4j - reading multiple options from .ini file

他指出我在实例化Wini对象时没有加载ini文件。 首先创建一个Config实例并将其 MultiOption 属性设置为true。 然后在没有ini文件作为参数的情况下初始化 Wini 实例。而是使用 load()方法加载ini文件。

Wini ini = null;
    Config conf = new Config();
    try {
        conf.setMultiOption(true);
        ini = new Wini();
        ini.setConfig(conf);
        ini.load(new File("MyIniFile.ini"));
    } catch (InvalidFileFormatException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }