2

プロパティー・ファイルにいくつかの値を保存していますが、ファイルを開くたびに、コーディングした順序で値が書き込まれません。

save.setProperty("SN", "foo");
save.setProperty("ID", "bar");
save.setProperty("TN", "example");
save.setProperty("TC", "generic");
save.setProperty("SW", "incorrect");
save.setProperty("NW", "order");
save.store(new FileOutputStream(file.getAbsolutePath(), null);

これは、ファイルを開くと次のようになります。

#Sat Jul 13 19:28:59 EDT 2013
ID=bar
SW=incorrect
TC=generic
TN=example
NW=order
SN=foo

ご覧のとおり、順序はコーディングから完全に外れています。なぜこれが起こるのか、私は興味があります。明らかにアルファベット順にソートされておらず、このようにする理由が他に見当たりません。

4

2 に答える 2

5

Propertiesクラスはクラスを拡張しますHashtable

ハッシュベースのセットの反復順序は定義されていません。


ちなみに、 Hashtable を使用する代わりにProperties extends を使用するという事実は、JDK の多くの設計上の「誤り」の 1 つと見なされています。Hashtable

他の「間違い」の簡単なリストについては、この回答を参照してください。

于 2013-07-13T23:48:57.750 に答える