1

したがって、必要なキーが存在するかどうかを確認して確認することになっているこのコードブロックがありますが、存在するかどうかに関係なく、常に if ブロックのコードを呼び出します

else {
    Wini ini = new Wini(new File("config.ini"));
    if(!ini.containsKey("nick") || !ini.containsKey("serverHostname") || !ini.containsKey("serverPort") || !ini.containsKey("defaultChannel") || !ini.containsKey("adminNick") || !ini.containsKey("adminHostname")) {
        System.out.println("One or more keys in your configuration do not exist, Remaking configuration");
        ini.clear();
        ini.add("Config");
        System.out.print("Nickname: ");
        ini.put("Config", "nick", input.next());
        System.out.print("Server Hostname: ");
        ini.put("Config", "serverHostname", input.next());
        System.out.print("Server Port: ");
        ini.put("Config", "serverPort", input.nextInt());
        System.out.print("Default Channel: ");
        ini.put("Config", "defaultChannel", input.next());
        ini.add("Administration");
        System.out.print("Bot Administrator Nickname: ");
        ini.put("Administration", "adminNick", input.next());
        System.out.print("Bot Administrator Hostname: ");
        ini.put("Administration", "adminHostname", input.next());
        ini.store();
        System.out.println("Configuration file Remade, Continuing with startup");
    }

編集: これは config.ini です:

[Config]
nick = Craftxbot
serverHostname = irc.alphachat.net
serverPort = 6667
defaultChannel = #minecraftchat
adminNick = craftxbox
adminHostname = craftxbox.tk
4

3 に答える 3

0

この1について確信を持つことは困難ですが、そのcontainsKeyように使用すべきではないと思います。セクションを含むiniファイルがあるので、「構成」セクションでcontainsKeyを使用する必要があると思います。

ここにいくつかの例があります: http://www.massapi.com/method/org/ini4j/Profile/Section.containsKey.html


1 ... ini4j の javadoc の明らかな欠点を考えると。

于 2016-05-29T04:25:20.850 に答える