2013-04-10 2 views
0

У меня есть приложение, в котором я фильтрую сообщения в соответствии с некоторыми правилами (существующими некоторыми ключевыми словами или регулярными выражениями). Эти правила должны храниться в файле .properties (поскольку они должны быть постоянными). Я понял, как читать данные из этого файла. здесь входите в код:Как изменить файл .properties с помощью apache.commons.configuration

public class Config { 

    private static final Config ourInstance = new Config(); 
    private static final CompositeConfiguration prop = new CompositeConfiguration(); 

    public static Config getInstance() { 
     return ourInstance; 
    } 

    public Config(){ 
    } 

    public synchronized void load() { 
     try { 
      prop.addConfiguration(new SystemConfiguration()); 

      System.out.println("Loading /rules.properties"); 
      final PropertiesConfiguration p = new PropertiesConfiguration(); 
      p.setPath("/home/mikhail/bzrrep/DLP/DLPServer/src/main/resources/rules.properties"); 
      p.load(); 
      prop.addConfiguration(p); 

     } catch (ConfigurationException e) { 
      e.printStackTrace(); 
     } 

     final int processors = prop.getInt("server.processors", 1); 

     // If you don't see this line - likely config name is wrong 
     System.out.println("Using processors:" + processors); 
    } 

    public void setKeyword(String customerId, String keyword){    
    }  
    public void setRegexp(String customerId, String regexp) 
    {} 
} 

как вы видите, я собираюсь добавить значения к некоторым свойствам. Вот сам файл в .properties:

users = admin, root, guest 
users.admin.keywords = admin 
users.admin.regexps = test-5, test-7 

users.root.keywords = root 
users.root.regexps = * 

users.guest.keywords = guest 
users.guest.regexps = 

У меня есть графический интерфейс для пользователя, чтобы добавить ключевые слова и регэкспы в этой конфигурации. так, как реализовать методы setKeyword и setRegexp?

ответ

1

Самый простой способ - прочитать текущие значения свойства String [], добавить новое значение и установить свойство. props.setProperty(fieldName, values);

Смежные вопросы