在属性文件中写入字符串时,如何跳过\?

时间:2019-03-29 10:01:29

标签: java spring-boot

我正在使用prop.put函数设置一些字符串内容,并将其写入.txt文件。

Properties prop = new Properties();
OutputStream output = null;

String uName = "Name=Anand, Age=25";
prop.put("User", uName);

output = new FileOutputStream("src/main/resources/node.txt");
prop.store(output, null);

当我打开node.txt时,它写为User=Name\=Anand, Age\=25。如何在没有\的情况下将其写入文件。即User="Name=Anand, Age=25"。有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

尝试一下:

String uName = "\"Name\u003dAnand, Age\u003d25\"";

答案 1 :(得分:0)

Properties类不支持此功能。
如何超越属性,存储方法?
要自己实现功能(Properties.saveConvert)!
您可以删除代码“ case'=':”,但仅支持您编写;

      switch(aChar) {
            case ' ':
                if (x == 0 || escapeSpace)
                    outBuffer.append('\\');
                outBuffer.append(' ');
                break;
            case '\t':outBuffer.append('\\'); outBuffer.append('t');
                      break;
            case '\n':outBuffer.append('\\'); outBuffer.append('n');
                      break;
            case '\r':outBuffer.append('\\'); outBuffer.append('r');
                      break;
            case '\f':outBuffer.append('\\'); outBuffer.append('f');
                      break;
            case '=': // What you need do is to remove this line
            case ':': // Fall through
            case '#': // Fall through
            case '!':
                outBuffer.append('\\'); outBuffer.append(aChar);
                break;
            default:
                if (((aChar < 0x0020) || (aChar > 0x007e)) & escapeUnicode ) {
                    outBuffer.append('\\');
                    outBuffer.append('u');
                    outBuffer.append(toHex((aChar >> 12) & 0xF));
                    outBuffer.append(toHex((aChar >>  8) & 0xF));
                    outBuffer.append(toHex((aChar >>  4) & 0xF));
                    outBuffer.append(toHex( aChar        & 0xF));
                } else {
                    outBuffer.append(aChar);
                }
        }