ホームページ > Java > &#&チュートリアル > Java プログラムがプロパティ設定ファイルを読み取る方法の詳細な説明

Java プログラムがプロパティ設定ファイルを読み取る方法の詳細な説明

高洛峰
リリース: 2017-01-12 10:32:35
オリジナル
1131 人が閲覧しました

私たちが通常プログラムを書くとき、いくつかのパラメーターは頻繁に変更されますが、この変更は私たちが予測するものではありません。たとえば、データベースを操作するためのモジュールを開発した場合、このデータを操作するためのモジュールを汎用化するために、IP、データベース名、テーブル名、データベースのホストなどの情報がローカルのデータベースに接続されます。 , then 上記の情報はプログラムに書き込むことができません。通常、私たちのアプローチは、設定ファイルを使用して問題を解決することです。
各言語には、サポートされる独自の設定ファイルの種類があります。たとえば、Python は .ini ファイルをサポートします。 .ini ファイルの読み書きをサポートする内部 ConfigParser クラスを備えているため、プログラマはこのクラスが提供するメソッドに従って .ini ファイルを自由に操作できます。 Java では、.properties ファイルの読み取りと書き込みがサポートされています。 JDK の組み込み java.util.Properties クラスは、.properties ファイルの操作に便利です。

1. .properties ファイル形式

# 以下为服务器、数据库信息
dbPort = localhost
databaseName = mydb
dbUserName = root
dbPassword = root
# 以下为数据库表信息
dbTable = mytable
# 以下为服务器信息
ip = 192.168.0.9
ログイン後にコピー

上記のファイルでは、ファイル名が test.properties ファイルであると仮定します。このうち # で始まる行をアノテーション情報、等号「=」の左側をキー、等号「=」の右側を値と呼びます。 (実際、これは私たちがよくキーと値のペアと呼ぶものです) key はプログラム内の変数である必要があります。値は実際の状況に応じて設定されます。

2. JDK のプロパティ クラス

Properties クラスは Java.util に存在します。このクラスは、いくつかの主要なメソッドを提供する Hashtable を継承します。 getProperty(String key)、指定されたキーを使用して、このプロパティ リストからプロパティを検索します。つまり、パラメータキーを介して、キーに対応する値が取得されます。
2. load(InputStream inStream) は、入力ストリームからプロパティ (キーと要素のペア) のリストを読み取ります。ファイルをロードして、指定したファイル (上記の test.properties ファイルなど) 内のすべてのキーと値のペアを取得します。 getProperty(String key)による検索の場合。
3. setProperty(String key,String value)、Hashtable メソッド put を呼び出します。基本クラスの put メソッドを呼び出して、キーと値のペアを設定します。
4. store(OutputStream out,String comments) は、この Properties テーブルのプロパティ (キーと要素のペア) のリストを、load メソッドを使用して Properties テーブルにロードするのに適した形式で出力ストリームに書き込みます。ロード メソッドとは対照的に、このメソッドはキーと値のペアを指定されたファイルに書き込みます。
5. clear() は、ロードされたすべてのキーと値のペアをクリアします。このメソッドは基本クラスで提供されます。
上記の方法で.propertiesファイルを操作することができます!

3. Java 読み取りプロパティ ファイルの例

次の内容のプロパティ ファイル box.properties があります:

Color=Red
Name=Box
Length=18
Width=7
Heigth=8
ログイン後にコピー

プロパティ値を取得するには、次のコードを使用できます:

InputStream in = null;
Properties p = new Properties();
try {
  in = new BufferedInputStream(new FileInputStream("box.properties"));
  p.load(in);
} catch (FileNotFoundException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
Enumeration<Object> keys = p.keys();
while (keys.hasMoreElements()) {
  String key = (String) keys.nextElement();
  System.out.println(key + ":" + p.getProperty(key));
}
ログイン後にコピー

または:

InputStream in;
ResourceBundle rb = null;
try {
  in = new BufferedInputStream(new FileInputStream("box.properties"));
  rb = new PropertyResourceBundle(in);
} catch (FileNotFoundException e1) {
  // TODO Auto-generated catch block
  e1.printStackTrace();
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}
if (rb != null) {
  Enumeration<String> keys = rb.getKeys();
  while (keys.hasMoreElements()) {
    String key = (String) keys.nextElement();
    System.out.println(key + ":" + rb.getString(key));
  }
}
ログイン後にコピー

Java プログラムがプロパティ設定ファイルを読み取る方法の詳細については、PHP 中国語 Web サイトの関連記事に注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート