Простой пример работы с Property файлами в Java

Property файлы присутствуют практически в каждом проекте, и сейчас я вам покажу простой пример их использования, а также расскажу, зачем они и где используются.

Шаг 0. Создание проекта

Начнем с того что создадим простой Maven проект, указав название и имя пакета:

prop_1

Структура, которая получится в конце проекта довольно таки простая.

Как видите у нас только два файла, первый — Main.java, а второй — config.properties.

 

Шаг 2. Добавляем конфигурационные данные в проперти файл

Проперти файлы либо файлы свойств — предназначены, для того чтобы хранить в них какие-то статические данные необходимые проект, например логин и пароль к БД.

Давайте добавим в наш config.properties логин и пароль (это любые данные, для того чтобы продемонстрировать работу с property файлами).

Содержимое config.properties:

db.host = http://localhost:8888/mydb
db.login = root
db.password = dbroot

Как видите, данные представлены в виде {ключ} = {значение}, где

{ключ} — это уникальное имя, по которому можно получить доступ к значению, хранимому под этим ключом.

{значение} — это текст, либо число, которое вам необходимо для выполнения определённой логики в вашей программе.

 

Шаг 3. Получаем Property данные

Как можно видеть в структуре проекта выше, там есть класс Main.java давайте его создадим и напишем в нем следующее:

package com.devcolibir.prop;

import java.io.*;
import java.util.Properties;

public class Main {

    public static void main(String[] args) {

        FileInputStream fis;
        Properties property = new Properties();

        try {
            fis = new FileInputStream("src/main/resources/config.properties");
            property.load(fis);

            String host = property.getProperty("db.host");
            String login = property.getProperty("db.login");
            String password = property.getProperty("db.password");

            System.out.println("HOST: " + host
                            + ", LOGIN: " + login
                            + ", PASSWORD: " + password);

        } catch (IOException e) {
            System.err.println("ОШИБКА: Файл свойств отсуствует!");
        }

    }

}

Обращаясь к property.getProperty({ключ}) — вы получаете его значение.

Вот такой краткий, но думаю познавательный урок.

Урок создан: 24 февраля 2014 | Просмотров: 47133 | Автор: Александр Барчук | Правила перепечатки


Добавить комментарий

Добавить комментарий

Ваш e-mail не будет опубликован.

Комментарии:

  • 16 сентября 2014 в 14:10

    vit

    Как получить доступ к файлу config.properties? Такие пути src/main/resources/config.properties, src\\main\\resources\\config.properties не проходят.

  • 24 ноября 2014 в 17:55

    Антон

    я вот так сделал
    try {

    FileInputStream fis;
    Properties properties = new Properties();
    String propFileName = «loginMysql.properties»;

    InputStream inputStream = getClass().getClassLoader().getResourceAsStream(propFileName);

    properties.load(inputStream);

    String host = properties.getProperty(«host»);
    String login = properties.getProperty(«login»);
    String password = properties.getProperty(«password»);
    myConnection = DriverManager.getConnection(host, login, password);
    }
    catch (IOException io) {
    System.out.println(«IO»);
    }
    catch (SQLException e) {
    System.out.println(«sql»);
    }
    }

    • 06 марта 2015 в 00:02

      lightdelay

      C .property файлами всё хорошо, но вот код совершенно безграмотный, если уж есть намек на желания обработки исключительных ситуаций, то нужно их все обрабатывать.

      • 16 ноября 2015 в 02:16

        йяЧеловек

        Лучше такие исключения чем без них.

  • 15 мая 2015 в 08:14

    Эдуард

    Блин, и как с этим бороться? Для дебага путь к файлу «src/main/resources/config.properties», а для продакшена — «main/resources/config.properties»… лазить менять код — это тоже самое что вшивать конфиги в код =(

    • 21 апреля 2017 в 16:43

      Ross

      System.getProperty(«user.dir») + File.separator + «resources» + File.separator + «config.properties»
      System.getProperty(«user.dir») <- путь в корень проекта

  • 03 сентября 2016 в 16:31

    Любовь

    после нулевого пункта идет второй…

  • 24 апреля 2017 в 15:54

    Алексей

    Забыл!!!
    finally {
    fis.close();
    }

    • 24 апреля 2017 в 15:55

      Алексей

      Не забываем в конце это написать! Админ, поправь пожалуйста пост

    • 24 апреля 2017 в 15:58

      Алексей

      Или можно так:
      try (InputStream inputStream = this.getClass().getResourceAsStream(«asdf.properties»)) {

      } catch …

  • 05 сентября 2017 в 03:41

    Аноним

    А что делать, если объявил Properties в одном методе и хочешь использовать в другом. Тогда его видимость ограничена?