Как получить доступ к файлу свойств Java

У меня есть файл свойств.

#My properties file
config1=first_config
config2=second_config
config3=third_config
config4=fourth_config

У меня есть класс, который загружает файл свойств в небольшое приложение Java. Это прекрасно работает, особенно когда я пытаюсь получить доступ к каждому свойству в методе этого класса.

public class LoadProperties {
  public void loadProperties() {
    Properties prop = new Properties();
    InputStream input = null;
    try {
        input = new FileInputStream("resources/config.properties");
        prop.load(input);

    } catch (Exception e) {
        System.out.println(e);
    }
  }
}

Я вызываю метод этого класса в другом классе, в методе.

public class MyClass {
  public void myMethod() {
    LoadProperties lp = new LoadProperties();
    lp.loadProperties();
    /*..More code...*/
  }
}

Как получить доступ к свойствам в myMethod метод в MyClass учебный класс? Я пробовал печатать prop.getProperty("[property_name]"), который не работает.

Есть идеи? Я предполагаю, что это будет, как я бы получить доступ к свойствам. Я могу хранить их в переменных в loadProperties Класс и вернуть переменные, но я думал, что смогу получить к ним доступ, как я сказал выше.

1 ответ

Решение

Вы можете изменить класс LoadProperties для загрузки свойств и добавить метод для возврата загруженных свойств.

public class LoadProperties {
    Properties prop = new Properties();
    public LoadProperties() {
        try (FileInputStream fileInputStream = new FileInputStream("config.properties")){
            prop.load(fileInputStream);
        } catch (Exception e) {
            System.out.println(e);
        }
    }

    public Properties getProperties() {
        return prop;
    }
}

Тогда используйте это так

public class MyClass {
    public void myMethod() {
        LoadProperties loadProperties = new LoadProperties();
        System.out.println(loadProperties.getProperties().getProperty("config1"));
    }
}
Другие вопросы по тегам