2012-02-07 145 views
1

我有一个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/ 

在结肠由反斜杠

我怎样才能解决这个问题呢?

+2

当你读到java中的属性是反斜杠吗?我的猜测是':'字符是.properties文件中的一个特殊字符,因此在写入文件时它会自动转义它们。从文件中读取时应该避开它们,所以你应该没问题。 – Herms 2012-02-07 18:18:32

回答

3

没问题。使用load(InputStream)再次读取您的属性。然后从Properties正常得到url

3

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

5

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

冒号是属性文件中特殊的元字符。如果你想存储一个键/值对,其中的值有冒号,为了避免混淆,它应该被转义。 Java的属性写作库正在为你逃避。

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

3

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