替换属性文件上的所有反斜杠

Nat*_*pos 1 java file-io android properties

我正在查看Properties我正在测试的文件,我意识到每次我执行Properties.store()包含字符的值:/接收反斜杠,但我希望我的属性文件被其他不是用Java编写的程序读取(所以他们不会使用Properties库)那些反斜杠会导致它们出现问题.有没有办法保存文件没有那些?


我已经尝试构建此函数,该函数在Properties文件保存后调用:

private void replaceInFile(File file) throws IOException {
    File tmpFile = new File("/sdcard/test.prop");
    FileWriter fw = new FileWriter(tmpFile);
    Reader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);

    while (br.ready()) {
        fw.write(br.readLine().replaceAll("\\", "") + "\n");
    }

    fw.close();
    br.close();
    fr.close();
}
Run Code Online (Sandbox Code Playgroud)

但是在调用函数时我收到此错误:

02-03 13:05:34.757:E/AndroidRuntime(15558):java.util.regex.PatternSyntaxException:索引1附近的语法错误U_REGEX_BAD_ESCAPE_SEQUENCE:
\
^

Boz*_*zho 6

这些是特殊字符.他们必须用斜线逃脱.

=并且:是将键与值分开的符号.如果你有foo=bar=baz什么?还是foo:bar:baz?哪个是关键,哪个是价值

如果要强制执行不同的规则,请实现自己的机制,不要使用java.util.Properties.有关完整的规则,请参阅Properties.load(..)

存储属性后,您可以读取字符串2.替换转义字符.3.将新字符串写入文件.