如何包括“#";在属性文件中'#';escape不';不起作用

本文关键字:#39# 文件 escape 不起作用 何包括 quot 属性 | 更新日期: 2023-09-27 18:28:56

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

我想把映射定义为跟随

someField[#]=someValue

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

如何包括“#";在属性文件中'#';escape不';不起作用

您可以使用'逃离#,如

someField'#=1

它将为您提供{someField#=1}

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

下的示例

属性

name# = #John#

Java代码

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

打印:#John#

编辑:

如果密钥包含第一个字符#,在这种情况下,您需要在属性文件中用"''"对其进行转义

例如

'#country# = #India#

这样写:

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));
    }