2011-01-18 6 views
1

は私が PropertiesConfigurationクラスを使用してプロパティを読んでいます Apache commonsは、構成をa形式で読み込みます。 .B

window.1.height=100 
window.1.width=80 

window.2.height=50 
window.2.width=30 

window.3.height=150 
window.3.width=100 

言うのプロパティファイルを持っています。 プロパティ内のウィンドウの数を知る方法を教えてください。私は通常、このカウンタの値が連続していなければならない制約を課す

int i = 0; 
String val; 
for(;;) { 
    val = props.get("foo" + i); 
    if (null == val) { 
    break; 
    } 
    //process val 
} 

のようなものを使用thereaパターン検索

答えて

1

です。

+0

それは動作しますが、私はコモンズの設定自体から長さを判断できるかどうか疑問に思っています。最終的にはループする必要があります – Manoj

+0

私はそれを行う方法を見つけたことがないので、他の誰かがもっと幸運を見ているかどうかを見ていきます。 – karakuricoder

1

プロパティファイル自体を制御できる場合は、いくつかのことがあります。あなたがそのフォーマットに縛られているなら、あなたができることは何もないと私は信じています。プロパティから

XML設定

変更はXMLファイル形式へのファイル:あなたがそのフォーマットにロックされていない場合

しかし、ここでのソリューションのカップルです。

<windows> 
    <window> 
    <width>80</width> 
    <height>100</height> 
    </window> 
    <window> 
    <width>30</width> 
    <height>50</height> 
    </window> 
    <window> 
    <width>100</width> 
    <height>150</height> 
    </window> 
</windows> 

そして、代わりにPropertiesConfigurationのXMLConfigurationを使用します。このような何か。その後、

config.getList("windows").size() 

と呼び出して、ウィンドウの数を取得することができます。まだプロパティファイルが含ま

プロパティの設定

あなたの他のオプションは、もう少し不自然です。あなたのプロパティファイルは次のように見えるように変更します

window.height=100 
window.width=80 

window.height=50 
window.width=30 

window.height=150 
window.width=100 

そして、ウィンドウの数は、あなたがこの方法を使用して、しかし

config.getList("window.height").size(); 

を呼ぶだろう得るために、あなたが値を取得する方法を変更する必要があります。例えば、第二のウィンドウの幅と高さを得るために、あなたがこれを使用します。括弧を使用して

config.getInteger("window.width(1)"); 
config.getInteger("window.height(1)"); 

、あなたはゼロベースなインデックスを使用して、リストの個々の要素にアクセスすることができます。理解するのが少し難しいですが、うまくいくでしょう。

関連する問題