Java属性文件。 setProperty()方法的问题

时间:2012-09-24 07:27:43

标签: java properties properties-file

我尝试使用Properties方法覆盖Properties#setProperty()文件中的现有属性值。

但是我得到了额外的反斜杠......

例如,我在属性文件中有以下条目:

#url to server
url=http://192.22.222.222

当我尝试用新值http://192.22.222.222覆盖值http://192.33.333.333时,我得到了以下结果: http\://192.33.333.333

即。第一次反弹是不必要的。我

哪里有问题?

3 个答案:

答案 0 :(得分:4)

没问题。再次加载文件时,您将不会在属性值中看到反斜杠。逃避代码选择逃避所有冒号(可能都是等号),无论是否严格要求。 (当它们不是密钥的一部分时,你不来逃避它们,但它可能使代码更简单。)

只要您始终使用Properties.load方法之一加载代码,就应该看不出任何问题。

答案 1 :(得分:2)

来自the doc

  

该键包含以。开头的行中的所有字符   第一个非白色空格字符,最多但不包括   首先是未转义的'='':'或除了一行之外的空白字符   终止。所有这些关键终止字符都可以包含在中   用前面的反斜杠字符转义它们的关键;对于   例如,

     

\:\=

     

将是双字符键":="

答案 2 :(得分:1)

在编写属性值时,Java属性将转义一些像冒号这样的字符。 请参阅Properties#store

这被认为是一个特性,因为属性格式允许冒号作为键/值分隔符(参见属性#load方法的来源)