Javaプロパティファイルの例
通常、Javaプロパティファイルはプロジェクト設定データまたは設定を保存するために使用されます。 このチュートリアルでは、.properties
ファイルの読み取りと書き込みの方法を示します。
Properties prop = new Properties(); // set key and value prop.setProperty("db.url", "localhost"); prop.setProperty("db.user", "example"); prop.setProperty("db.password", "password"); // save a properties file prop.store(outputStream, ""); // load a properties file prop.load(inputStream) // get value by key prop.getProperty("db.url"); prop.getProperty("db.user"); prop.getProperty("db.password"); // get all keys prop.keySet(); // print everything prop.forEach((k, v) -> System.out.println("Key : " + k + ", Value : " + v));
テスト用のシンプルなMavenプロジェクト構造。
1. プロパティファイルへの書き込み
プロパティのキーと値を設定し、どこかに保存します。
App1.java
package com.example; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Properties; public class App1 { public static void main(String[] args) { try (OutputStream output = new FileOutputStream("path/to/config.properties")) { Properties prop = new Properties(); // set the properties value prop.setProperty("db.url", "localhost"); prop.setProperty("db.user", "example"); prop.setProperty("db.password", "password"); // save properties to project root folder prop.store(output, null); System.out.println(prop); } catch (IOException io) { io.printStackTrace(); } } }
出力
{db.user=example, db.password=password, db.url=localhost}
path/to/config.properties
が作成されます。
path/to/config.properties
#Thu Apr 11 17:37:58 SRET 2019 db.user=example db.password=password db.url=localhost
2. プロパティファイルを読み込む
ファイルシステムからプロパティファイルを読み込み、プロパティ値を取得します。
App2.java
package com.example; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class App2 { public static void main(String[] args) { try (InputStream input = new FileInputStream("path/to/config.properties")) { Properties prop = new Properties(); // load a properties file prop.load(input); // get the property value and print it out System.out.println(prop.getProperty("db.url")); System.out.println(prop.getProperty("db.user")); System.out.println(prop.getProperty("db.password")); } catch (IOException ex) { ex.printStackTrace(); } } }
出力
localhost example password
3. クラスパスからプロパティファイルを読み込む
プロジェクトのクラスパスからプロパティファイルconfig.properties
をロードし、プロパティ値を取得しました。
src/main/resources/config.properties
db.url=localhost db.user=example db.password=password
App3.java
package com.example; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class App3 { public static void main(String[] args) { try (InputStream input = App3.class.getClassLoader().getResourceAsStream("config.properties")) { Properties prop = new Properties(); if (input == null) { System.out.println("Sorry, unable to find config.properties"); return; } //load a properties file from class path, inside static method prop.load(input); //get the property value and print it out System.out.println(prop.getProperty("db.url")); System.out.println(prop.getProperty("db.user")); System.out.println(prop.getProperty("db.password")); } catch (IOException ex) { ex.printStackTrace(); } } }
出力
localhost example password
4. プロパティファイルからすべてを印刷します
プロジェクトのクラスパスからプロパティファイルconfig.properties
をロードし、キーと値を出力します。
App4.java
package com.example; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import java.util.Set; public class App4 { public static void main(String[] args) { App4 app = new App4(); app.printAll("config.properties"); } private void printAll(String filename) { try (InputStream input = getClass().getClassLoader().getResourceAsStream(filename)) { Properties prop = new Properties(); if (input == null) { System.out.println("Sorry, unable to find " + filename); return; } prop.load(input); // Java 8 , print key and values prop.forEach((key, value) -> System.out.println("Key : " + key + ", Value : " + value)); // Get all keys prop.keySet().forEach(x -> System.out.println(x)); Set
出力
Key : db.user, Value : example Key : db.password, Value : password Key : db.url, Value : localhost db.user db.password db.url
ソースコードをダウンロード
ダウンロード–java-properties-file.zip(6KB)