在属性JavaFX中保存路径时删除转义字符

时间:2018-04-17 02:59:53

标签: java javafx fileinputstream fileoutputstream

我正在将文件的路径保存为使用Java中的属性到配置文件中。

this.adb = adb.getAbsolutePath();
this.prop.setProperty("adb", this.adb);
//save config to project root folder
this.prop.store(new FileOutputStream("config"), null);

保存后配置文件的内容为:

adb=C\:\\Program Files\\Genymobile\\Genymotion\\tools\\adb.exe

如何将保存为没有转义字符,以便用户可以轻松手动修改路径,而无需输入转义字符。

我还尝试手动保存配置文件而不使用转义字符,但程序将该属性读取为:

C:Program FilesGenymobileGenymotion oolsadb.exe

从配置文件中读取属性的代码是:

prop.load(new FileInputStream("config"));
this.adb = prop.getProperty("adb");

1 个答案:

答案 0 :(得分:2)

java.util.Properties.store使用反斜杠来转义特殊字符(例如等号属性键),因此字面反斜杠本身需要转义\\。如果这种行为不是你想要的,不要使用java.util.Properties,推出你自己的实用程序属性类,这应该是一个简单的练习。如果您不确定转义字符是什么,请查看此维基百科page

Properties类中的相关代码(saveConvert方法)

            if (aChar == '\\') {
                outBuffer.append('\\'); outBuffer.append('\\');
                continue;
            }