英文:
Problem in writing special characters to a properties file in Java
问题
我需要向属性文件中添加键值对。
除了#和=之外,其他都正常工作,每次在字符之前添加\。
请给我一些建议。
当前属性文件数据
paper = Normalised
我想评论这个键
#paper = Normalised
但现在发生的是\被添加了
\#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;
}
'''
在属性文件中写入的值
- \#paper = Normalised
英文:
I need to add key value pairs to a properties file.
All are working fine except # and = everytine a \ is appended before the characters.
Please share me any suggestion.
current properties file data
paper = Normalised
I want to comment this key
#paper = Normalised
but what is happening is \ is getting added
\#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;
}
'''
Value in property file getting written
- \#paper = Normalised
答案1
得分: 1
哈希标签是Java属性文件中评论的引导符号:
#由生成器在2020-05-01创建
#当前属性文件数据
paper = Normalised
#想要更新,类似于
#paper = Normalised – 但这是一个评论…
#但现实情况是会添加\#
\#paper = Normalised#需要反斜杠…
因此,通过反斜杠进行转义是使其正常工作的唯一方法。
不幸的是,当您需要使用java.util.Properties以外的另一个API读取属性文件时,您必须将此功能添加到解析器中。
英文:
The hash tag is the lead-in for a comment in Java Properties files:
# 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 …
So the escape with the backslash is the only way to get it working.
Unfortunately, when you need to read the Properties file with another API than java.util.Properties, you have to add this capability to your parser.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。


评论