2016-05-05 30 views
2

私はいつもHashMapを作成し、そこにキーと値のペアを維持できるので、なぜPropertiesクラスが必要なのか疑問に思っています。プロパティファイルをロード/ストアするためのコード量を減らすことができます。それ以外の場合は、BufferedReaderを作成してファイルを読み込んで、Stringとそのすべてを分割する必要があるためです。しかし、ファイル以外のソースからキー/値のペアを取得しようとすると、おそらくプロパティクラスかHashMapクラスのどちらを使用しても差はありません。私の思考プロセスが正しいかどうかの確認が必要です。あなたが述べてきたようにJavaでPropertiesクラスが必要なのはなぜですか?

おかげで

+0

プロパティは、アプリケーションの実行に影響を与え、javaがアプリケーションの環境を設定するためのデフォルトの方法です。 – t0mm13b

+0

プロパティクラスは、特定のタイプのマップを表します。クラスを持つことで、プロパティを持つすべてのものにわたって実装を再利用することができます。それ以外の場合は、毎回書き換える必要があります。 – ChiefTwoPencils

+0

あなたはすでにあなた自身の質問に答えました。これにはI/Oコードが含まれています。あなたの本当に求めるものが不明です。 – EJP

答えて

2

Propertiesは、Java 1.0以降のJavaの一部となっているクラスです.... MapHashMapが導入されたもの前に。実際には、Propertiesは、HashMapの前駆体であった古い(従来の)Hashtableクラスを拡張しています。

Propertiesは、システムプロパティオブジェクトの形式でJavaアプリケーションのかなりの割合で重要な役割を果たします。互換性の問題を導入することなくその役割で置き換えることはできません。 (第二(デュアル)のプロパティメカニズムを導入しても変更が問題となる...いくつかのコードがシステムPropertiesオブジェクトにを書き込みますので)

PropertiesHashMapが提供していないいくつかの重要な機能を持っています。すなわち、2つの標準的な人間が読める形式でプロパティをロードして保存する能力である。


それは/ストアのプロパティファイルをロードするために書くためにコードの量を減らすように。それ以外の場合は、BufferedReaderを作成してファイルを読み込んで、Stringとそのすべてを分割する必要があるためです。

はい。そして、プロパティファイルの構文は、splitまたはregexesで解析できるよりも複雑であることがわかります。構文を見て、ここで説明:

をしかし、我々はファイル以外のソースからの私達のキー/値のペアを取得しようとしているならば、おそらくそれは我々かどうかを任意の違いはありません。 PropertiesクラスまたはHashMapクラスを使用しています。

また、正しい。そのユースケースについては、HashMapがさらに優れているかもしれません。 Properties/Hashtableのほとんどのメソッドは同期されています。同期が必要ない場合は、(小さな)パフォーマンス上のペナルティです。

1

Propertiesクラスは、ディスクへ/から保存/読み込みする機能を提供し、それはちょうどそれよりも多くありません。それはInputStreamから読み取って保存することができるので、StringからPropertiesを解析するか、URLまたはSocketからPropertiesを読み込むか、何を持っているかを読んでください。また、PropertiesをXMLに変換することもできますが、これは10年前と同じくらい便利ではありませんが、それでもなおすばらしい機能です。最も重要なのは、あなたは以下の記事で説明した構文については、独自のパーサを記述する必要はありません。

https://en.wikipedia.org/wiki/.properties

それはあなたのプログラムは、一般的な滞在することができますので、あなたは、あなたのプログラムの外のあなたのプログラムに引数を定義することができますそれが達成しようとしているものにあなたの設定をハードコードする必要はありません。

0

簡単なメンテナンス:プロパティファイルから情報が変更された場合は、Javaクラスを再コンパイルする必要はありません。言い換えれば、プロパティファイルを使用する利点は、コード内の何も変更することなく一定期間にわたって変更されやすいものを構成できることです。

プロパティファイルは、java.util.Propertiesクラスで解析できるキーと値のペアの単純な集合です。

プロパティファイルは、主に構成データまたはローカライズデータを格納するために使用されます。 これらは、アプリケーションに構成可能なデータを外部化するために使用されます。このようなデータをコード(enumまたはclassなど)に入れて変更する場合は、コードを再度ビルドする必要があります。プロパティの主な利点は、外部またはソースコードの外部に格納されるため、必要に応じて変更することができることです。

関連する問題