有没有人知道为什么在存储属性文件时冒号会被转义?
我这样做:
Properties prop = new Properties();
// Set the properties value.
prop.setProperty("url","http://localhost:7101/test/home");
使用以下方式存储:
prop.store(new FileOutputStream(propFile), null);
它正在运行,但由于某种原因输出冒号逃脱:
url=http\://localhost\:7101/test/home
任何人都知道修复?
答案 0 :(得分:15)
在属性文件中,这两者都是合法的:
key1 = value
key2: value
因此,必须转义=和:
现在,如果您使用“属性”阅读该内容,则没有问题。否则,您将不得不编写自定义代码
答案 1 :(得分:2)
这就是store() API的作用: -
键和元素的每个字符 检查字符串以查看是否存在 应该作为一种逃避 序列。 ASCII字符\,标签, 换页,换行和运输 return被写为\,\ t,\ f \ n, 和\ r,分别。字符少 比\ u0020和字符更大 比\ u007E写为\ uxxxx for 适当的十六进制值 XXXX。对于钥匙,所有空间 字符用a写的 前面的\字符。为了 元素,领先的空间字符,但是 没有嵌入或尾随空间 字符,写着 前面的\字符。关键和 元素字符#,!,=和:是 用前面的反斜杠写的 确保它们正确装载。
只要您使用Properties
获取值,这对您来说就不重要了。