Java 如何在Coldfusion中使用org.apache.commons.configuration
我试图利用PropertiesConfiguration在coldfusion中操作属性文件。使用org.apache.commons.configuration 1.10版Java 如何在Coldfusion中使用org.apache.commons.configuration,java,coldfusion,apache-commons-config,Java,Coldfusion,Apache Commons Config,我试图利用PropertiesConfiguration在coldfusion中操作属性文件。使用org.apache.commons.configuration 1.10版 propertyFile = "usergui.properties"; config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(propertyFile); 我将使用匹配函数init,它
propertyFile = "usergui.properties";
config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(propertyFile);
我将使用匹配函数init,它接受一个字符串。我尝试过使用java.io.file 我发现问题在于我没有包含所有的依赖项。哼
function updatePropFile(string propFile, struct propStruct, struct removeStruct){
propertyFile = propFile;
javaFile = createObject("java", "java.io.File").init(propertyFile);
fileStream = createObject("java", "java.io.FileInputStream").init(javaFile);
config = createObject("java","org.apache.commons.configuration.PropertiesConfiguration").init(javaFile);
configLayout = config.getLayout();
for(key in propStruct){
if(config.containsKey(key)){
config.setProperty(key, propStruct[key]);
}else{
config.addProperty(key, propStruct[key]);
}
}
for(key in removeStruct){
if(config.containsKey(key)){
/* clear prop and add as comment */
value = config.getProperty(key).toString();
config.clearProperty(key);
config.addProperty('##'&key, key & "=" & value);
}
}
configLayout.save(createObject("java", "java.io.FileWriter").init(propFile, false));
}
“如何使用”这个问题对S.O.来说有点宽泛。最好把它缩小到一个特定的问题,比如“我试图做X。我尝试了代码Y,但它抛出了错误Z”。你不能使用ColdFusions属性函数吗?很好的跟进!两个小建议1)不要忘记本地化所有函数局部变量2)虽然相对文件路径(即“usergui.properties”)可以工作,但通常绝对路径更可取,因此文件保存的确切位置很清楚。。3) 另外,如果使用不带参数的
init()
,然后使用setPath()
(设置源代码),则加载和保存也会稍微困难一些。然后您可以调用load()
和save()
,而不需要额外的java.io文件对象。如果函数可以被多个线程访问,请注意同步。看见