「今日、私たちはもう 1 つの新しくて興味深いトピック、プロパティについて検討します。

「Java では、プログラムを柔軟で簡単にカスタマイズできる、つまり簡単に構成できるようにするのが通例です。」

「たとえば、プログラムは 1 時間に 1 回、特定のディレクトリからファイルをコピーし、圧縮して電子メールで送信します。これを行うには、プログラムはファイルの取得元のディレクトリと電子メール アドレスを知っている必要があります。送信先。そのようなデータは通常、アプリケーション コードではなく、別のプロパティファイルに保存されます。」

このファイル内のデータは、等号で区切られたキーと値のペアとして保存されます。

data.properties file
directory = c:/text/downloads
email = zapp@codegym.cc

「記号の左側は名前 (キー)、右側は値です。」

「つまり、これは HashMap の一種のテキスト表現ですか?」

「一般的には、そうです。」

「このようなファイルの操作を容易にするために、Java には特別な Properties クラスがあります。Properties クラスは Hashtable<Object,Object> を継承します。ファイルから自身をロードできる Hashtable と考えることもできます。」

「その方法は次のとおりです。」

方法 説明
void load(Reader reader) Reader オブジェクトで表されるファイルからプロパティを読み込みます。
void load(InputStream inStream) InputStream オブジェクトで表されるファイルからプロパティを読み込みます。
void loadFromXML(InputStream in) XML ファイルからプロパティをロードする
Object get(Object key) 指定されたキーの値を返します。このメソッドは Hashtable から継承されます
String getProperty(String key) キーごとにプロパティ値(文字列)を返します。
String getProperty(String key, String defaultValue) キーまたはdefaultValue (そのようなキーがない場合) によってプロパティ値を返します。
Set<String> stringPropertyNames() すべてのキーのリストを返します

「言い換えれば、実際に実行する必要がある操作は 2 つだけです。ファイルからデータをPropertiesオブジェクトにロードし、次にgetProperty () メソッドを使用してこれらのプロパティを取得します。まあ、 Propertiesオブジェクトは次のように使用できることを忘れないでください。ハッシュマップ。」

「別の例を次に示します。」

コード
// The file that stores our project's properties
File file = new File("c:/data.properties");

// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));

// Get property values from the Properties object
String email = properties.getProperty("email");
String directory = properties.getProperty("directory");

// Get a numeric value from the Properties object
int maxFileSize = Integer.parseInt(properties.getProperty("max.size", "10000"));

「ああ。それでは、Properties オブジェクトを作成し、それにファイルを渡します。load メソッドに渡します。そして、getProperty を呼び出すだけです。そうですよね?」

「はい。」

「それから、HashMapとしても使えるって言ってましたね?どういう意味ですか?」

「Properties クラスは HashMap と同じ Hashtable を継承しますが、そのメソッドはすべて同期されます。次のように、プロパティ ファイルのすべての値を画面に表示するだけです。」

コード
// Get the file with the properties
File file = new File("c:/data.properties");

// Create a Properties object and load data from the file into it.
Properties properties = new Properties();
properties.load(new FileReader(file));

// Run through all the keys and display their values on the console
for (String key : properties.stringPropertyNames())
{
 System.out.println(properties.get(key));
}

「ああ。すべてがうまくいったようだ。ありがとう、リシ。この素晴らしいものを使わせてもらうよ。」