2011-03-04 57 views
11

有谁知道当我存储属性文件时,冒号为什么越狱吗?保存到属性文件转义:

我这样做:

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 

任何人都知道一个固定?

回答

15

在属性文件中,这两个是合法的:

key1 = value 
key2: value 

因此,无论=和:必须进行转义。

现在,如果您使用属性读回事物,这没有问题。否则,你就必须编写自定义代码

+0

打倒我吧。教我适合首先编写测试代码,而不是去参加Javadoc。 – 2011-03-04 19:53:16

+0

尊重编写测试代码! (让你想知道为什么提出这个问题的人不会开始这样做;) – iluxa 2011-03-04 20:05:10

2

这是什么store() API的功能: -

键和元素 字符串的每个字符检查,看它是否 应该呈现为一个转义 序列。 ASCII字符\,选项卡, 换页,换行符和回车 返回分别写为\,\ t,\ f \ n, 和\ r。字符少于 比\ u0020和字符大于 比\ u007E写为\ uxxxx为 适当的十六进制值 xxxx。对于密钥,所有空间 字符都用前面的\字符 写入。对于 元素,前导空格字符,但 未嵌入或尾随空格 字符,用前面的\字符 写入。键和 元素字符#,!,=和: 用前面的反斜杠写入到 确保它们正确加载。

只要您使用Properties来获取值,它应该不会对您有任何影响。