Java Ini4J更改整个INI文件而不是1键设置
我正在编写一个Java应用程序,我只需要它来更改ini文件中的一个键设置。我使用ini4j来实现这一点,但在加载文件时遇到了一些问题 该文件看起来像我在下面看到的:Java Ini4J更改整个INI文件而不是1键设置,java,configuration,ini4j,Java,Configuration,Ini4j,我正在编写一个Java应用程序,我只需要它来更改ini文件中的一个键设置。我使用ini4j来实现这一点,但在加载文件时遇到了一些问题 该文件看起来像我在下面看到的: [SECTION 1] #Some Commented text Key1=value 1 for key 1 +value 2 for key 1 +value 3 for key 1 Key2=value for key 2<BR> Key3=value for key 3<BR> [SECTION
[SECTION 1]
#Some Commented text
Key1=value 1 for key 1
+value 2 for key 1
+value 3 for key 1
Key2=value for key 2<BR>
Key3=value for key 3<BR>
[SECTION 1]
#Some Commented text
Key1=value 1 for key 1
+value 2 for key 1=
+value 3 for key 1=
Key2=value for key 2
Key3=new value 1 for key 3
+new value 2 for key 3
请注意,ini4j将新行上的多值键识别为键设置,并在其末尾放置一个=
符号,以及更改中的所有注释
到#
(这不应该引起问题,但希望除了我指定的密钥之外,不要更改其他内容)
当我使用下面的代码片段加载ini文件时,我能够正确地隔离发生的问题:
String iniFileLoc = "my path\\iniFile.ini";
String valueLine = "value 1 for key 3\n" + "+value 2 for key 3\n";
Wini ini = new Wini();
File iniFile = new File(iniFileLoc);
ini.load(iniFile);
ini.add("SECTION1", "Key3", valueLine);
ini.store(iniFile);
是否有任何方法可以防止ini4j更改我指定的特定键以外的任何内容?如果不是,我如何防止ini4j将未注释的行识别为键设置。我正在使用的ini
文件必须采用这种格式,因此除了使用+
符号外,我无法指定具有多值键的其他方法
任何帮助都将不胜感激
谢谢您所使用的可能看起来像ini文件并具有该扩展名,但它不是ini文件。Ini文件有三个部分:用
[]
定义的节、键/值对(key=value
)和注释(以开头的行;
)。ini文件格式中没有以+
标记的多行值,也没有以#
开头的注释。所以我猜唯一的解决方法是使用缓冲读取器来识别需要修改的键并进行相应的更改?我无法提供解决方案(我不是Java人),这就是我只发表评论的原因。:-)我说的是文件本身的格式,以及为什么您得到的输出可能与您预期的不同。