Мини-ini
Это мини-утилита для работы с файлами формата .ini.
Мой английский плохой, но я всё равно стараюсь редактировать комментарии на английском языке. Надеюсь, вы меня поймёте.
Большинство из них взято из перевода Google.
Если вы знаете китайский язык, это замечательно, мы сможем хорошо общаться. Возможно, вы захотите взглянуть на китайский README
и поставить звёздочку, спасибо~ (´▽`)
github: https://github.com/ForteScarlet/mini-ini
gitee : https://gitee.com/ForteScarlet/mini-ini
Как использовать?
Сначала нажмите кнопку «звездочка» в правом верхнем углу, чтобы активировать скрытый контент. :P
Создайте проект с помощью:
Maven:
<dependency>
<groupId>love.forte</groupId>
<artifactId>mini-ini</artifactId>
<version>${version}</version>
</dependency>
Gradle:
compile group: 'love.forte', name: 'mini-ini', version: '${version}'
Часть кода, которая появляется ниже, взята из Demo1.
См. test.ini
// Получить входной поток
InputStream iniInput = Demo1.class.getClassLoader().getResourceAsStream("test.ini");
// Прочитать по умолчанию буферизованным считывателем
IniReader ir = new BufferedIniReader();
Ini ini = ir.read(iniInput);
// показать
System.out.println(ini);
// в свойства и показать
ini.toProperties().forEach((k, v) -> {
System.out.println(k + "=" + v);
});
Часть кода, которая появляется ниже, взята из Demo2.
// Создать IniBuilder и
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")
;
// Построить ini
final Ini ini = b.build();
// показать
System.out.println(ini);
// Записать в файл
ini.write(Paths.get("F:\\test3.ini"), true);
IniElement
реализует интерфейс java.io.Serializable
, который можно сериализовать. (1.1.0)Ini
наследует ArrayList<IniElement>
, который можно сериализовать и использовать в качестве списка.IniProperty
реализует интерфейс Map.Entry<String, String>
.IniSection
реализует интерфейс List<IniProperty>
, который можно использовать в качестве списка.Вы можете настроить (реализовать интерфейс), чтобы реализовать некоторые дополнительные методы синтаксического анализа.
Я предоставляю несколько простых в реализации (возможно) интерфейсов для поддержки пользовательских настроек. Если хотите, вы также можете открыть исходный код своих дополнительных реализаций. Если вы открываете исходный код, сообщите мне, я укажу адрес в README.
Некоторые интерфейсы или абстрактные классы:
Элементы ini, такие как IniElement
, BaseElement
или IniComment
(по умолчанию реализуется IniCommentImpl
), IniProperty
(по умолчанию реализуется IniPropertyImpl
), IniSection
(по умолчанию реализуется IniSectionImpl
).
Считыватель ini, такой как IniReadable
, IniReader
или обратитесь к реализации по умолчанию BufferedIniReader
.
Форматировщик ini, например IniFormatter
, IniFormatterFactory
, ElementFormatter
.
Вы можете обратиться к Demo3.
По умолчанию при разборе ini-файла содержимое ini-файла делится на несколько частей:
# 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
Правила по умолчанию:
Я нашёл баг! О! Отлично! Вы можете сообщить мне через систему отслеживания ошибок или отправить баг через отправку ветки. Попробуйте использовать простой английский или китайский язык. Спасибо.
Конец Если вам нравится, поставьте мне звезду или подкиньте немного карманных денег~ Если нет, рассмотрите возможность помочь мне улучшить код.
Вознаградите меня:
afdian: https://afdian.net/@ForteScarlet
alipay:
wechat:
Мой уровень ограничен, пожалуйста, поймите, если есть какие-либо проблемы.
license: Apache License 2.0
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )