#使用のプロパティは、読み取りにプロファイルを設定します。
例:設定ファイルの内容は次のとおりです。
# setting.properties
last_open_file=/data/hello.txt
auto_save_interval=60
.propertiesファイルは、ファイルシステムから読み取ることができます。
String f = "setting.properties";
Properties props = new Properties();
props.load(new java.io.FileInputStream(f));
String filepath = props.getProperty("last_open_file");
String interval = props.getProperty("auto_save_interval", "120");
一般的にコンフィギュレーション・ファイルを読み取るために使用されるプロパティ、3段階の合計:
* 创建Properties实例;
* 调用load()读取文件;
* 调用getProperty()获取配置。
荷重(入力ストリーム)メソッドは、入力ストリームのインスタンスを受信するバイトのストリームを表し、それは必ずしもファイルストリームないのでクラスパスの.propertiesは、ファイルから読み込むことができる、ストリームリソースジャーパッケージから読み取ることができます。
Properties props = new Properties();
props.load(getClass().getResourceAsStream("/common/setting.properties"));
あなたは複数の.propertiesファイルがある場合は、読み込み)(負荷を繰り返し呼び出すことができ、キーと値のキー値は、読み取り後に読み取りをオーバーライドします。
Properties props = new Properties();
props.load(getClass().getResourceAsString("/common/setting.properties"));
props.load(new FileInputStream("C:\\conf\\setting.properties"));
上記のコードは、一般的な使用のプロパティを示しています。あなたは、デフォルトの設定の一部をカバーし、マシンの環境に基づいて別のプロファイルを作成し、クラスパスにデフォルトの設定ファイルを変更することができます。
目的は、String型のキーと値の設計のプロパティを格納することですが、そのデザインから派生Hashtableのプロパティ事実は、実際の問題ですが、互換性を維持するためには、今変更されません。getPropertyメソッド(に加えて)とのsetProperty()メソッドと同様に、ハッシュテーブルからダウン継承のget()と()メソッドを入れて、これらのメソッドのパラメータの署名がオブジェクトである我々は、プロパティを使用する場合、それらをハッシュテーブルから継承された呼び出し行きません方法。
設定ファイルを記述します。
setProperty()プロパティのインスタンスは、コンフィギュレーションファイルに書き込むことができなければ、修正は、最新の構成ように、次のスタートを取得します。コンフィギュレーション・ファイル・ストア()メソッドを使用します。
Properties props = new Properties();
props.setProperty("url", "http://www.liaoxuefeng.com");
props.setProperty("language", "Java");
props.store(new FileOutputStream("C:\\conf\\setting.properties"), "这是写入的properties注释");
負荷(入力ストリーム)は、常にコード読み取りASCIIバイトストリームをデフォルトとするので、それは歪みが読むようになります。私たちは、別のオーバーロードされたメソッド・ロード(リーダー)を使用して読み取る必要があります。
Properties props = new Properties();
props.load(new FileReader("settings.properties", StandardCharsets.UTF_8));
これは、中国の通常を読むことができます。InputStreamおよびReaderは、バイトストリームとの間の差である、それは文字のストリームです。メモリ内の文字列をcharとして表現されており、それは問題をコーディングする必要ありません。