在Java中向属性文件写入特殊字符的问题。

问题描述 投票:0回答:1

我需要在一个属性文件中添加键值对。除了#和=之外,其他都能正常工作,但每一个字符前都会附加一个\。

请分享我的任何建议。

当前属性文件数据

纸张 = 归一化

我想评论一下这个关键

#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;
    }

'''

属性文件中的值被写入

  • #paper = Normalised
java properties-file
1个回答
1
投票

哈希标签是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你必须在你的解析器中添加这个功能。

© www.soinside.com 2019 - 2024. All rights reserved.