Проблема записи специальных символов в файл свойств в Java - PullRequest
0 голосов
/ 02 мая 2020

Мне нужно добавить пары ключ-значение в файл свойств. Все работают нормально, кроме # и = EveryTine A \ добавляется перед символами.

Пожалуйста, поделитесь со мной любым предложением.

данные текущего файла свойств

paper = Normalized

Я хочу прокомментировать этот ключ

# paper = Normalized

но происходит то, что \ добавляется

\ # paper = Normalized

'' '

      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 = Normalized

1 Ответ

1 голос
/ 02 мая 2020

Тег ha sh является отправной точкой для комментария в 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 …

Так что экранирование с помощью backsla sh - единственный способ заставить его работать .

К сожалению, когда вам нужно прочитать файл свойств с другим API, отличным от java.util.Properties, вы должны добавить эту возможность в свой анализатор.

...