如何在属性文件中包含“#”。 '\#'逃脱不起作用

时间:2016-01-05 05:56:04

标签: java c# properties

我需要在属性文件中包含#的值,但#用于在属性文件中注释行。我该怎么做。

我想定义映射的内容如下

someField[#]=someValue

#后的任何内容都会被评论。 谢谢你的帮助。

3 个答案:

答案 0 :(得分:0)

您可以使用#转义\,例如

someField\#=1

将为您提供{someField#=1}

答案 1 :(得分:0)

这样写:

key\#1=value\#1

其他特殊字符如'=',':'也一样。

Java代码:

  1. 写属性:

    Properties p =  new Properties();
    p.load(PropertiesTest.class.getResourceAsStream("prop.properties"));
    p.setProperty("key#=dsafw", "value $#@^$%@**^");
    p.setProperty("key#1", "value#1");
    p.store(new FileOutputStream(new File("../TEMP/prop.properties")), "write special property kvs");
    
  2. 读取属性:

    p.load(new FileInputStream(new File("../TEMP/prop.properties")));
    Enumeration<Object> keys = p.keys();
    while(keys.hasMoreElements()){
      String key = (String) keys.nextElement();
      System.out.println("key --> " + key + ", value --> " + p.getProperty(key));
    }
    

答案 2 :(得分:0)

在Java 8上测试工作正常,没有任何转义字符

以下示例

属性

name# = #John#

Java代码

System.out.println( p.getProperty("name#"));

打印: #John#

编辑:

如果键包含第一个字符为#,则需要在属性文件中使用'\'将其转义

e.g。

\#country# = #India#