У меня есть приложение grails, которое читается из файла свойств. Я создал страницу администрирования, которая позволяет пользователю просматривать настройки в этом файле. Я хочу разрешить пользователю обновлять различные свойства и сохранять их обратно в файл свойств с помощью Grails.Сохраните изменения в файле свойств в Grails
Моя проблема в том, что я не могу понять, как сохранить изменения обратно в файл свойств.
Вот мой код, который считывает из файла и вносит изменения в свойства:
def env = params.getAt("environment");
if (env != null){
//Read from Property file based on user selection
def props = new Properties()
def cl = Thread.currentThread().contextClassLoader
def filepath = env+'.properties'
props.load servletContext.getResourceAsStream("/WEB-INF/"+ filepath)
Enumeration e = props.propertyNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
def input = params.getAt(key)
if (input != null){
props.setProperty(key,input)
}
}
//props.store(propFile.newWriter(), null)
}
Любые идеи о том, как сохранить/перезаписать файл example.properties в /WEB-INF/example.properties?
ссылку вы размещены не кажется работать. Поэтому мне нужно использовать get real path, но мне не нужно писать обратно в файл свойств через выходной поток? Не знаете, как это сделать в groovy/grails – FarscapePROJ
Если вы получите реальный путь, скажем, web-inf, то вы можете найти абсолютный путь к вашему файлу, тогда вы можете открыть выходной поток точно так же, как в простой Java, используя properties.store (См. Java.util.Properties javadoc), например ... Надеюсь, это поможет. – rimero