logo

Javaのプロパティクラス

プロパティ オブジェクトには、キーと値のペアが両方とも文字列として含まれています。 java.util.Properties クラスは Hashtable のサブクラスです。

プロパティ キーに基づいてプロパティ値を取得するために使用できます。 Properties クラスは、プロパティ ファイルからデータを取得し、プロパティ ファイルにデータを保存するメソッドを提供します。さらに、システムのプロパティを取得するために使用することもできます。

プロパティファイルの利点

プロパティ ファイルの情報が変更された場合、再コンパイルは必要ありません。 プロパティー・ファイルの情報が変更された場合、Java クラスを再コンパイルする必要はありません。頻繁に変更される情報を保存するために使用されます。

Properties クラスのコンストラクター

方法説明
プロパティ()デフォルト値のない空のプロパティ リストが作成されます。
プロパティ(プロパティのデフォルト)指定されたデフォルトを使用して空のプロパティ リストを作成します。

プロパティクラスのメソッド

Properties クラスの一般的に使用されるメソッドを以下に示します。

方法説明
public voidload(リーダーr)Reader オブジェクトからデータを読み込みます。
public voidload(InputStreamは)これは、InputStream オブジェクトからデータをロードします。
public void loadFromXML(InputStream in)これは、指定された入力ストリーム上の XML ドキュメントによって表されるすべてのプロパティをこのプロパティ テーブルにロードするために使用されます。
public String getProperty(String key)キーに基づいて値を返します。
public String getProperty(String key, String defaultValue)指定されたキーを持つプロパティを検索します。
public void setProperty(文字列キー, 文字列値)Hashtableのputメソッドを呼び出します。
パブリック void リスト (PrintStream 出力)これは、指定された出力ストリームにプロパティ リストを出力するために使用されます。
パブリック void リスト (PrintWriter 出力))これは、指定された出力ストリームにプロパティ リストを出力するために使用されます。
public Enumeration propertyNames())プロパティ リストからすべてのキーの列挙を返します。
public Set stringPropertyNames()これは、キーとそれに対応する値が文字列であるプロパティ リストからキーのセットを返します。
public voidストア(ライターw、文字列コメント)Writer オブジェクトにプロパティを書き込みます。
public void ストア(OutputStream os、文字列コメント)OutputStream オブジェクトにプロパティを書き込みます。
public void storeToXML(OutputStream os, 文字列コメント)XML ドキュメントを生成するためのプロパティを Writer オブジェクトに書き込みます。
public void storeToXML(ライター w、文字列コメント、文字列エンコーディング)指定されたエンコーディングで XML ドキュメントを生成するためのプロパティをライター オブジェクトに書き込みます。

プロパティファイルから情報を取得するPropertiesクラスの例

プロパティ ファイルから情報を取得するには、まずプロパティ ファイルを作成します。

db.properties
 user=system password=oracle 

次に、プロパティ ファイルからデータを読み取る Java クラスを作成しましょう。

テスト.java
 import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ FileReader reader=new FileReader('db.properties'); Properties p=new Properties(); p.load(reader); System.out.println(p.getProperty('user')); System.out.println(p.getProperty('password')); } } 
 Output:system oracle 

これで、プロパティー・ファイルの値を変更した場合に、Java クラスを再コンパイルする必要がなくなりました。つまりメンテナンス上の問題はありません。


すべてのシステム プロパティを取得する Properties クラスの例

System.getProperties() メソッドにより、システムのすべてのプロパティを取得できます。システムプロパティから情報を取得するクラスを作成しましょう。

テスト.java
 import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ Properties p=System.getProperties(); Set set=p.entrySet(); Iterator itr=set.iterator(); while(itr.hasNext()){ Map.Entry entry=(Map.Entry)itr.next(); System.out.println(entry.getKey()+' = '+entry.getValue()); } } } 
 Output: java.runtime.name = Java(TM) SE Runtime Environment sun.boot.library.path = C:Program FilesJavajdk1.7.0_01jrein java.vm.version = 21.1-b02 java.vm.vendor = Oracle Corporation java.vendor.url = http://java.oracle.com/ path.separator = ; java.vm.name = Java HotSpot(TM) Client VM file.encoding.pkg = sun.io user.country = US user.script = sun.java.launcher = SUN_STANDARD ........... 

プロパティファイルを作成するPropertiesクラスの例

次に、プロパティ ファイルを作成するコードを記述してみましょう。

テスト.java
 import java.util.*; import java.io.*; public class Test { public static void main(String[] args)throws Exception{ Properties p=new Properties(); p.setProperty('name','Sonoo Jaiswal'); p.setProperty('email','[email protected]'); p.store(new FileWriter('info.properties'),'Javatpoint Properties Example'); } } 

生成されたプロパティ ファイルを見てみましょう。

情報プロパティ
 #Javatpoint Properties Example #Thu Oct 03 22:35:53 IST 2013 [email protected] name=Sonoo Jaiswal