1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/ForteScarlet-mini-ini

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Мини-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}'

Чтение ini

Часть кода, которая появляется ниже, взята из 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);
});

Создать/записать ini

Часть кода, которая появляется ниже, взята из 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.

Внимание

  • В этом проекте нет дополнительных зависимостей, поэтому вы... Должно быть возможно использовать его напрямую, импортируя jar-пакет.

По умолчанию при разборе 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/ForteScarlet-mini-ini.git
git@gitlife.ru:oschina-mirror/ForteScarlet-mini-ini.git
oschina-mirror
ForteScarlet-mini-ini
ForteScarlet-mini-ini
master