我需要将键值对添加到属性文件。 除了#和=每个例程,每个字符都可以正常工作,在字符前附加一个\。
请分享我的任何建议。
当前属性文件数据
纸张=归一化
我要对此键发表评论
#paper =规范化
但是正在发生的事是\正在被添加
\#paper =规范化
'''
String valueOfKey = updatedMap.get(key);
updatedMap.remove(key);
updatedMap.put("#" + key, valueOfKey);
String totalPath = propertiesService.getFilePath(request) + "\\" + propertiesModel.getSelectedFile();
propertiesService.updatePropertyfile(updatedMap, request, totalPath);
'''
'''
public boolean updatePropertyfile(Map<String, String> map, HttpServletRequest request, String fileName) {
Properties props = new Properties();
Writer Out = null;
File file = new File(fileName);
try {
FileOutputStream out = new FileOutputStream(file);
Out = new BufferedWriter(new OutputStreamWriter(out));
Set<String> keyset = map.keySet();
Iterator iter = keyset.iterator();
while (iter.hasNext()) {
String key = (String) iter.next();
props.setProperty(key, (String) map.get(key));
}
props.store(Out, "update");
Out.flush();
Out.close();
} catch (IOException e) {
return false;
}
return true;
}
'''
属性文件中的值被写入
答案 0 :(得分:1)
hash标签是Java属性文件中的注释的引言:
# Created by generator on 2020-05-01
#current properties file data
paper = Normalised
#want to update like
#paper = Normalised – but this is a comment …
#but what is happening is \# is getting added
\#paper = Normalised # Backslash required …
因此,使用反斜杠进行转义是使其正常工作的唯一方法。
不幸的是,当您需要使用java.util.Properties
以外的其他API读取属性文件时,必须将此功能添加到解析器中。