1

次の形式でプロパティ ファイルを読み書きできる Java API を探しています。

<prefix>.<index>.<suffix>=<value>

例えば:

launcher.1.id=23
launcher.1.name=abc
launcher.1.date=123123
launcher.2.id=sdfsdf
launcher.2.name=Asdfdsf
launcher.2.date=ghfgh
cec.1.id=sdfsdf
cec.1.name=Asdfdsf
cec.1.date=ghfgh
cec.2.id=sdfsdf
cec.2.name=Asdfdsf
cec.2.date=ghfgh
#...

log4j は、アペンダーの構成に非常によく似た形式を使用します。

log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p 
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

このような場合のJavaライブラリがあるかどうか、誰か考えがありますか?

ありがとう、イリヤ

4

4 に答える 4

1

Apache commons-configurationを調べましたか? それらは、そのようなプロパティ ファイルを照会するための xpath のようなサポートを提供し、さらに、フォーマットを変更することに決めた場合に、xml、ini などの間を行き来できるようにします。

于 2012-07-05T16:09:16.783 に答える
0

正しい解決策は、フォーマットを再検討し、これに JSON を使用することでした。アイデアをありがとう@ControlAltDel。

于 2012-11-10T19:30:57.793 に答える
-1

There are two possibilities:

  1. You add a property that defines how many numbered items exist - e.g. launcher.count = 2
  2. You enumerate all keys and look for the suitable pattern:

    for (Object o : properties.keySet()) {
        String key = (String) o;
        if (key.startsWith("launcher")) {
            ...
        } else if (key.startsWith("cec")) {
            ...
        } 
    }
    
于 2012-07-05T15:28:56.367 に答える
-2
java.util.Properties

String string = properties.getProperty("launcher.1.name");
properties.setProperty("launcher.1.name", "abc");

列挙にすべてのプロパティが必要な場合は、

public Enumeration<?> propertyNames()

Returns an enumeration of all the keys in this property list, 
including distinct keys in the default property list if a key of 
the same name has not already been found from the main properties list.
于 2012-07-05T15:21:03.277 に答える