Как избежать знака равенства в файлах свойств

Как я могу избежать знака равенства ( = ) в файлах свойств Java? Я хотел бы добавить в файл следующее:

 table.whereclause=where id=100 

Кроме того, пожалуйста, обратитесь к методу загрузки (Reader Reader) из classа Property на javadoc

В документации метода load(Reader reader) говорится:

Ключ содержит все символы в строке, начинающиеся с первого небелого пробела, и до, но не включая, первый неэкранированный символ '=' , ':' или белый пробел, отличный от терминатора линии. Все эти ключевые символы завершения могут быть включены в ключ, экранируя их с помощью предыдущего символа обратной косой черты; например,

 \:\= 

будет двухсимвольным ключом ":=". Линейные символы-ограничители могут быть включены с помощью управляющих последовательностей \r и \n . Любое пробел после нажатия клавиши; если первый символ небелого пробела после ключа равен '=' или ':' , тогда он игнорируется и любые пробелы после него также пропускаются. Все остальные символы в строке становятся частью связанной строки элемента; если оставшихся символов нет, элемент – это пустая строка "" . Когда идентифицируются исходные последовательности символов, составляющие ключ и элемент, обработка перехода выполняется, как описано выше.

Надеюсь, это поможет.

В вашем конкретном примере вам не нужно избегать равных – вам нужно только убежать, если это часть ключа. Формат файла свойств будет обрабатывать все символы после того, как первое неэкранированное значение станет частью значения.

По умолчанию escape-символ в Java равен ‘\’.
Однако файл свойств Java имеет формат key = value, он должен учитывать все после первого значения равным.

Лучший способ избежать подобных проблем – создавать программные свойства, а затем хранить их. Например, используя такой код:

 java.util.Properties props = new java.util.Properties(); props.setProperty("table.whereclause", "where id=100"); props.store(System.out, null); 

Это будет выводиться в System.out из правильно экранированной версии.

В моем случае выход был:

 #Mon Aug 12 13:50:56 EEST 2013 table.whereclause=where id\=100 

Как вы можете видеть, это простой способ сгенерировать содержимое файлов .properties, гарантированное правильность. И вы можете разместить столько свойств, сколько хотите.

В моем случае два ведущих «\\» работают отлично для меня.

Например: если ваше слово содержит символ «#» (например, aa # 100, вы можете избежать его с двумя ведущими «\\»

  key= aa\\#100 

Вы можете посмотреть здесь. Может ли ключ в свойстве Java содержать пустой символ?

для выхода равным ‘=’ \ u003d

table.whereclause = где id = 100

key: значение [table.whereclause]: [где id = 100]

table.whereclause \ u003dwhere id = 100

key: [table.whereclause = где] значение: [id = 100]

table.whereclause \ u003dwhere \ u0020id \ u003d100

key: [table.whereclause = где id = 100] значение: []

Я смог ввести значения внутри символа “:

 db_user="postgresql" db_passwd="this,is,my,password" 
  • Причина использования ivars против свойств в объекте c
  • Обновление значения свойства в файле свойств без удаления других значений
  • Как добавить свойства объекта во время выполнения?
  • Как пропустить Получить только свойства в servicestack json serializer?
  • Когда для доступа к свойствам с помощью «self»
  • Настройка Tomcat для использования файла свойств для загрузки информации о соединении DB
  • Использование @property против геттеров и сеттеров
  • Где разместить и как читать файлы ресурсов конфигурации в приложении на основе сервлета?
  • Список свойств classа в swift
  • Какова цель ивара, когда существует свойство?
  • Есть ли причина объявлять ivars, если вы используете свойства исключительно в Objective-C?
  • Давайте будем гением компьютера.