Я прочитал и попытался следующиеКак удалить обратный слеш из значения свойств в Java
- How to remove the backslash in string using regex in Java?
- Java, Removing backslash in string object
- String replace a Backslash
и многие блог, как хорошо, но все для удаления из строки не для свойств файла
I пытаюсь удалить \
от значения свойства файла, но не повезло
Вот мой config.properties
файл
query=select * from users
field=id
и мой Java код, который A.java
является
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class A {
public static void main(String[] args) throws IOException {
String configPath = "/home/arif/util-test/config.properties";
Properties prop = new Properties();
FileInputStream configFileInputStream = new FileInputStream(configPath);
prop.load(configFileInputStream);
System.out.println("Property file loaded "+ configPath);
configFileInputStream.close();
String query = prop.getProperty("query");
query += " where " + prop.getProperty("field") + " = 1";
//query = query.replaceAll("\\\\", "");
query = query.replace("\\", "");
prop.replace("query", query);
prop.store(new FileOutputStream(configPath), null);
System.out.println("updated query="+ query);
}
}
и обновленный config.properties
файл
#Mon Oct 03 14:34:27 IST 2016
query=select * from users where id \= 1
field=id
в то время как я ожидал следующий
#Mon Oct 03 14:34:27 IST 2016
query=select * from users where id = 1
field=id
и получить ожидаемый результат от терминала или ЦМД, терминальный вывод
Property file loaded /home/arif/util-test/config.properties
updated query=select * from users where id = 1
ваша помощь будет оценен по достоинству! спасибо
@PeterLawrey, вы читали вопрос перед маркировкой дубликата? –
@PeterLawrey здесь не то же самое, проблема заключается в том, что '=' является специальным символом в файле свойств, поскольку он используется для разрезания ключа и значения заданного свойства, так что он всегда будет экранирован с помощью обратная косая черта, но она полностью прозрачна для конечного пользователя, так как вызов getProperty («query») 'будет возвращать значение без обратного слэша. –
Почему вы хотите удалить обратную косую черту, поскольку она прозрачна для вас? это только деталь реализации –