Java字符串中的反斜杠问题

时间:2012-02-07 18:16:12

标签: java string

我有一段Java代码,它将一些内容(地址)写入用户属性文件:

address_string = "http://"+address.getText()+":"+port.getText();

properties.setProperty("url", address_string);

prop.store(new FileOutputStream("user.properties"), "");

但是当我去检查user.properties时,我没有获得正常的http地址,而是获得了以下内容:

 http\://localhost\:9000/softwarearchive/

其中冒号前面有反斜杠

我该如何解决这个问题?

4 个答案:

答案 0 :(得分:5)

属性文件具有特定结构。请参阅:http://en.wikipedia.org/wiki/.properties

冒号是属性文件中的特殊元字符。如果要存储值中包含冒号的键/值对,则应该对其进行转义以避免混淆。 Java的属性编写库正在为您进行转义。

如果你使用properties.getProperty(),你会得到你期望的字符串吗?如果是这样,事情就没事了。

答案 1 :(得分:4)

“:”在属性文件中用于将键与值分开。因此,文本中的任何“:”都需要转义。

答案 2 :(得分:3)

没问题。使用load(InputStream)再次阅读您的媒体资源。然后照常从url获取Properties

答案 3 :(得分:3)

查看properties javadoc,这是正确的行为。无论如何它都会在加载时失败,所以不要担心你的原始数据。