「今日、私たちはもう 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));
}
「ああ。すべてがうまくいったようだ。ありがとう、リシ。この素晴らしいものを使わせてもらうよ。」
GO TO FULL VERSION