【问题标题】:Saving to properties file escapes :保存到属性文件转义:
【发布时间】:2011-03-04 19:38:55
【问题描述】:

有人知道为什么我存储属性文件时冒号会被转义吗?

我正在这样做:

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

有人知道解决办法吗?

【问题讨论】:

    标签: java properties


    【解决方案1】:

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

    key1 = value
    key2: value
    

    所以 = 和 : 都必须转义。

    现在,如果您使用属性读回内容,那没问题。否则,您将不得不编写自定义代码

    【讨论】:

    • 打败我。教会我如何首先编写测试代码而不是去编写 Javadoc。
    • 尊重编写测试代码! (让你想知道为什么问这个问题的人不开始这样做;)
    【解决方案2】:

    这就是store() API 的作用:-

    键和元素的每个字符 字符串被检查,看它是否 应该呈现为逃避 顺序。 ASCII 字符 \、制表符、 换页、换行和回车 return 写成 \, \t, \f \n, 和\r,分别。字符少 比 \u0020 和更大的字符 比 \u007E 写为 \uxxxx 为 适当的十六进制值 xxxx。对于钥匙,所有空间 字符写有 前面的 \ 字符。为了 元素,前导空格字符,但是 没有嵌入或尾随空格 字符,写有 前面的 \ 字符。关键和 元素字符 #、!、= 和 : 是 用前面的反斜杠写成 确保它们已正确加载。

    只要您使用Properties 获取值,这对您来说并不重要。

    【讨论】:

      猜你喜欢
      • 2017-04-12
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 2016-02-16
      • 2013-09-20
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      相关资源
      最近更新 更多