我有一段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/
其中冒号前面有反斜杠
我该如何解决这个问题?
答案 0 :(得分:5)
属性文件具有特定结构。请参阅:http://en.wikipedia.org/wiki/.properties
冒号是属性文件中的特殊元字符。如果要存储值中包含冒号的键/值对,则应该对其进行转义以避免混淆。 Java的属性编写库正在为您进行转义。
如果你使用properties.getProperty()
,你会得到你期望的字符串吗?如果是这样,事情就没事了。
答案 1 :(得分:4)
“:”在属性文件中用于将键与值分开。因此,文本中的任何“:”都需要转义。
答案 2 :(得分:3)
没问题。使用load(InputStream)再次阅读您的媒体资源。然后照常从url
获取Properties
。
答案 3 :(得分:3)
查看properties javadoc,这是正确的行为。无论如何它都会在加载时失败,所以不要担心你的原始数据。