This is a mini util for .ini
file.
My English is poor, but I still try to edit comments in English. I hope you can understand.
Most come from google translation.
如果你会中文,那太好了,我们能够很好的交流。或许你可以看看中文README
and hope a star, Thanks~ ♪(´▽`)
github: https://github.com/ForteScarlet/mini-ini
gitee : https://gitee.com/ForteScarlet/mini-ini
First, Click the star button in the upper right corner to make some hidden content take effect. :P
Create project with:
Maven:
<dependency>
<groupId>love.forte</groupId>
<artifactId>mini-ini</artifactId>
<version>${version}</version>
</dependency>
Gradle:
compile group: 'love.forte', name: 'mini-ini', version: '${version}'
You can see part of the code that appears below from Demo1.
See test.ini
// Get input stream
InputStream iniInput = Demo1.class.getClassLoader().getResourceAsStream("test.ini");
// Read by default buffered reader
IniReader ir = new BufferedIniReader();
Ini ini = ir.read(iniInput);
// show
System.out.println(ini);
// to properties and show
ini.toProperties().forEach((k, v) -> {
System.out.println(k + "=" + v);
});
You can see part of the code that appears below from Demo2.
// Create an IniBuilder and
IniBuilder b = new IniBuilder()
.plusComment("this is a test ini")
.skipLine(2)
.plusSection("sec1", "this is a section")
.plusProperty("key1", "value")
.plusProperty("key2", "value")
.plusProperty("key3", "value")
.plusProperty("key4", "value")
.plusProperty("key5", "value")
.plusProperty("key6", "value")
.plusSection("sec2")
.plusProperty("key1", "value")
.plusProperty("key2", "value")
.plusProperty("key3", "value")
.plusProperty("key4", "value")
.plusProperty("key5", "value")
.plusProperty("key6", "value")
;
// Build ini
final Ini ini = b.build();
// show
System.out.println(ini);
// Write to file
ini.write(Paths.get("F:\\test3.ini"), true);
IniElement
implements the interface java.io.Serializable
, which can be serialized. (1.1.0)Ini
inherits ArrayList<IniElement>
, which can be serialized and used as a list.IniProperty
implements the interface Map.Entry<String, String>
.IniSection
implements the interface List<IniProperty>
, which can be used as a list.You can customize (implement the interface) to achieve some additional parsing methods.
I provide some easy-to-implement (probably) interfaces to support user customization. If you want, you can also open source your additional implementations. If you open source, you can tell me, I will show the address in the README.
some interface or abstract class:
Ini elements like IniElement
、BaseElement
or IniComment
(Default implementation is IniCommentImpl
)、IniProperty
(Default implementation is IniPropertyImpl
)、IniSection
(Default implementation is IniSectionImpl
).
Ini reader like IniReadable
、IniReader
or Refer to the default implementation BufferedIniReader
.
Ini formatter like IniFormatter
、IniFormatterFactory
、ElementFormatter
.
You can refer to Demo3.
This project has no additional dependencies, so you should be able to use it directly by importing the jar package.
By default, when parsing an ini file, the content of the ini file is divided into several parts:
# comment
[section1] # comment
# comment
property_key1=property_value
property_key2=property_value
property_key3=property_value
[section2] # comment
property_key1=property_value
property_key2=property_value
property_key3=property_value
#
and can be at the beginning of a line or the end of a section.Oh! nice! You can tell me through the issue, or submit the bug through branch submission. try to use simple English or Chinese. Thanks.
if you like this, Give me a star or a little pocket money~ if you don't, May consider helping me improve the code
Reward me:
afdian: https://afdian.net/@ForteScarlet
alipay:
wechat:
My level is limited, please understand if there are any problems.
license: Apache License 2.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。