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: somepassword
Value: Xj993a==
您的属性文件如下所示:
somepassword=Xj993a==
不幸的是,关键在哪里,价值在哪里?关键可能是:
值为Xj993a的somepassword ==
somepassword = Xj993a,值=
somepassword = Xj993a ==具有空值
对此的分析充其量是模棱两可的。现在,如果我们转义'='字符:
somepassword=Xj993a\=\=
现在清楚地知道哪个是键,哪个是值。
这也可以很容易地写成:
somepassword:Xj993a\=\=
请阅读java.util.Properties.load(java.io.Reader)文档,以获取有关允许的转义和解析属性文件的语义的更多信息。
关于java - 如何忽略属性文件中出现的反斜杠,例如:和=,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32969315/