我正在将 FILEPATH 参数写入属性文件,如下所示。
String newFilePath = txtFilepath.getText();
Properties prop = new Properties();
java.io.File propFile = new File("src/com/app/tool/properties/settings.properties");
prop.setProperty("FILEPATH", newFilePath);
System.out.println("newFilePath "+newFilePath);
try {
prop.store(new FileOutputStream(propFile), "New File location");
} catch (IOException ex) {
ex.printStackTrace();
}
文件路径是 D:\ filelog.txt
在写作时,控制台会打印出像..
newFilePath D:\filelog.txt
但是当我打开属性文件时,内容就像..
FILEPATH=D\:\\filelog.txt.
任何人都建议我,我真的在这里(?)在这里...?
答案 0 :(得分:2)
在属性文件中,:
有意义。
key = value
key: value
两者都有效。因此,在写入属性文件时必须进行转义。即使\
也需要逃避。但是当您在控制台上显示它们时,将识别转义,并正确显示值。
如果您看到Properties
类
此属性表中的每个条目都被写出,每行一个。对于 每个条目写入密钥字符串,然后是ASCII =,然后是 关联元素字符串。键和元素的每个字符 检查字符串以查看是否应将其呈现为转义 序列。 ASCII字符\,制表符,换页符,换行符和 回车分别写为\,\ t,\ f \ n和\ r \ n。 字符小于\ u0020且字符大于\ u007E 写为\ uxxxx为适当的十六进制值xxxx。为了 key,所有空格字符都用前面的\字符写。 对于元素,引导空格字符,但不嵌入或 尾随空格字符,使用前面的\字符编写。 键和元素字符#,!,=和:都是用 在反斜杠之前,以确保它们正确加载。
注意: - 如果您使用Properties
来读取属性文件(它将处理转义),这应该不是问题,但是如果您读取属性文件就像普通的文本文件(除非你不在意,否则你永远不应该这样做),那么这将是一个问题。
答案 1 :(得分:0)
反斜杠\
是一个转义字符,默认情况下不会被另一个\
冒号:
是一个特殊字符,必须使用\
进行转义。
检查
上的文档http://commons.apache.org/proper/commons-configuration/userguide/howto_properties.html
答案 2 :(得分:0)
只需致电prop.get("FILEPATH")
即可。你会看到你收到“D:\ filelog.txt”,就像你把它放进去一样。