Автор оригинала: mkyong.
Обычно файл свойств Java используется для хранения данных конфигурации или настроек проекта. В этом уроке мы покажем вам, как читать и записывать в/из файла .свойства
.
Properties prop = new Properties(); // set key and value prop.setProperty("db.url", "localhost"); prop.setProperty("db.user", "mkyong"); 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. Напишите в свойства файл
Установите ключ и значение свойства и сохраните его где-нибудь.
package com.mkyong; 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", "mkyong"); 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=mkyong, db.password=password, db.url=localhost}
Создается путь/к/config.properties
.
#Thu Apr 11 17:37:58 SRET 2019 db.user=mkyong db.password=password db.url=localhost
2. Загрузить свойства файл
Загрузите файл свойств из файловой системы и извлеките значение свойства.
package com.mkyong; 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 mkyong password
3. Загрузите файл свойств из пути к классу
Загрузите файл свойств config.properties
из пути к классу проекта и извлеките значение свойства.
db.url=localhost db.user=mkyong db.password=password
package com.mkyong; 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 mkyong password
4. Печатает все из файла свойств
Загрузите файл свойств config.properties
из пути к классам проекта и распечатайте ключи и значения.
package com.mkyong; 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 : mkyong Key : db.password, Value : password Key : db.url, Value : localhost db.user db.password db.url
Скачать Исходный Код
Рекомендации
- Свойства Javadoc
- getResourceAsStream в статическом методе
- Java – Чтение файла из папка ресурсов
Оригинал: “https://mkyong.com/java/java-properties-file-examples/”