如何忽略出现在属性文件中的反斜杠字符,如:和=
How to ignore backslashes appearing in the properties file for characters like : and =
private static void createPropertiesFile() {
Properties prop = new Properties();
OutputStream output = null;
try {
output = new FileOutputStream(
"c://properties//xyz.properties");
// set the properties value
prop.setProperty("URL", hostName);
prop.store(output, null);
} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
属性文件中的示例数据如下所示。
#Tue Oct 06 15:26:55 IST 2015
URL=jdbc\:sqlserver\://abc.xyz.net
我的理解是第一个“=”之前的任何内容都被视为键,第一个“=”之后的任何内容都被视为值。在此过程中,遇到 : 和 = 等字符时,使用反斜杠转义,'\'.
任何人都可以帮助我在遇到 : 和 =
时如何删除或限制“\”出现在属性文件中的第一位
这是设计使然。属性文件会将 = 和 : 视为 key/value 分隔符。
为了明确哪部分是键,哪部分是值,“=”和“:”字符(如果包含在任一部分中)必须进行转义。
考虑以下几点:
Key: somepassword
Value: Xj993a==
您的属性文件将如下所示:
somepassword=Xj993a==
不幸的是,键在哪里,值在哪里?关键可能是:
- 一些密码值为 Xj993a==
- somepassword=Xj993a 值 =
- somepassword=Xj993a== 为空值
对此的解析充其量是模棱两可的。现在,如果我们转义“=”字符:
somepassword=Xj993a\=\=
现在很清楚哪个是键,哪个是值。
这也可以很容易地写成:
somepassword:Xj993a\=\=
请阅读 java.util.Properties.load(java.io.Reader) 的文档以获取有关允许的转义和解析属性文件语义的更多信息。
private static void createPropertiesFile() {
Properties prop = new Properties();
OutputStream output = null;
try {
output = new FileOutputStream(
"c://properties//xyz.properties");
// set the properties value
prop.setProperty("URL", hostName);
prop.store(output, null);
} catch (IOException io) {
io.printStackTrace();
} finally {
if (output != null) {
try {
output.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
属性文件中的示例数据如下所示。
#Tue Oct 06 15:26:55 IST 2015
URL=jdbc\:sqlserver\://abc.xyz.net
我的理解是第一个“=”之前的任何内容都被视为键,第一个“=”之后的任何内容都被视为值。在此过程中,遇到 : 和 = 等字符时,使用反斜杠转义,'\'.
任何人都可以帮助我在遇到 : 和 =
时如何删除或限制“\”出现在属性文件中的第一位这是设计使然。属性文件会将 = 和 : 视为 key/value 分隔符。
为了明确哪部分是键,哪部分是值,“=”和“:”字符(如果包含在任一部分中)必须进行转义。
考虑以下几点:
Key: somepassword
Value: Xj993a==
您的属性文件将如下所示:
somepassword=Xj993a==
不幸的是,键在哪里,值在哪里?关键可能是:
- 一些密码值为 Xj993a==
- somepassword=Xj993a 值 =
- somepassword=Xj993a== 为空值
对此的解析充其量是模棱两可的。现在,如果我们转义“=”字符:
somepassword=Xj993a\=\=
现在很清楚哪个是键,哪个是值。
这也可以很容易地写成:
somepassword:Xj993a\=\=
请阅读 java.util.Properties.load(java.io.Reader) 的文档以获取有关允许的转义和解析属性文件语义的更多信息。