Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Java更新属性文件_Java_Path - Fatal编程技术网

用Java更新属性文件

用Java更新属性文件,java,path,Java,Path,我必须更新属性文件中标记的值。我必须在更新后保持文件的布局,所以我使用APACHE格式的PropertiesConfiguration API 我已经完成了这项工作,并且功能按预期工作。现在,这些值的键很少有反斜杠和正斜杠/。当我更新时,它会被更改。删除反斜杠,更新和正斜杠/成为/此。下面是我正在使用的示例代码 properties = new PropertiesConfiguration(("Dbconnect - Copy.properties")); properties.setProp

我必须更新属性文件中标记的值。我必须在更新后保持文件的布局,所以我使用APACHE格式的PropertiesConfiguration API

我已经完成了这项工作,并且功能按预期工作。现在,这些值的键很少有反斜杠和正斜杠/。当我更新时,它会被更改。删除反斜杠,更新和正斜杠/成为/此。下面是我正在使用的示例代码

properties = new PropertiesConfiguration(("Dbconnect - Copy.properties"));
properties.setProperty("ConfigFilePath", "C:\\Amitabh\\Projects\\");
properties.save();
System.out.println("config.properties updated Successfully!!");
只是想知道我将如何预防。 谢谢和问候 阿弥陀佛·潘迪

如果您在这里查看

您将看到属性文件中的斜杠具有特殊意义。它们用于转义属性中的字符,例如将属性分散到多行。因此,在将它们写入属性文件之前,应该用双斜杠替换它们\\\\


如果不使用Java标准属性读取器并自己读/写文件,就不会有这样的问题。例如,您可以将其作为文本文件打开,只需将该属性添加到末尾,基本上覆盖了其他被视为解决方法的时间。但最好尝试使用双4斜杠

你是说结果文件中的ConfigFilePath是C:/Amitabh/Projects/?否,它是ConfigFilePath键值。属性文件是Dbconnect-Copy.properties。请给出一个这样的值的示例?ABCH555466JKKK\BNH/U一个键值的这一个值。当文件得到更新时,它将变为。ABCH555466JKKBNH\/U。表示它将删除\斜杠并将\转换为\两个斜杠—一个是反斜杠,一个是正斜杠—这是预期的行为。如果你有/它应该转义,所以它用反斜杠转义,变成\/。否则,如果下次读取时它只是将/写入属性文件,则会得到不同的字符串。如果您不喜欢这种行为,您可以制作自己的读写器,但java所做的是正确的,根据属性文件规范,我给出的字符串是一个随机值。它是加密密码。现在它正被这个改变。我们可以用任何其他方法避免这种情况吗?那么在将其保存到属性文件之前,请执行替换\\,\\\\Ah,这是正确的方法。阅读您之前的评论,我们无法在PropertiesConfiguration类中使用任何方法来执行相同的操作。因为如果我要替换,那么属性文件的实际格式将丢失。这就是我使用PropertiesConfiguration类的原因。这是属性文件的实际格式-带转义。