我需要在属性文件中包含#的值,但#用于在属性文件中注释行。我该怎么做。
我想定义映射的内容如下
someField[#]=someValue
但#
后的任何内容都会被评论。
谢谢你的帮助。
答案 0 :(得分:0)
您可以使用#
转义\
,例如
someField\#=1
将为您提供{someField#=1}
答案 1 :(得分:0)
这样写:
key\#1=value\#1
其他特殊字符如'=',':'也一样。
Java代码:
写属性:
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");
读取属性:
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#