我需要在一个属性文件中添加键值对。除了#和=之外,其他都能正常工作,但每一个字符前都会附加一个\。
请分享我的任何建议。
当前属性文件数据
纸张 = 归一化
我想评论一下这个关键
#paper = 归一化
但是,发生的事情是 越来越多的添加
#paper = Normalised
'''
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;
}
'''
属性文件中的值被写入
哈希标签是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 …
所以用反斜杠转义是唯一的方法。
不幸的是,当你需要用另一个API来读取属性文件,而不是用 java.util.Properties
你必须在你的解析器中添加这个功能。