logpath = LoggerUtils.getProperties().getProperty("log.path");
System.out.println("logpath: " + logpath);
上面的代码返回:
logpath: C:UsersMauriceDesktopLogs
在属性文件中是:
log.path C:\Users\Maurice\Desktop\Logs
如何保留文件分隔符?我希望这也适用于Linux,而不仅仅是Windows。
答案 0 :(得分:14)
实际上,您需要将其放在属性文件中:
log.path C:\\Users\\Maurice\\Desktop\\Logs
见:
更确切地说是load
方法:
向下滚动一下,你会看到这一点:
该方法不会在非有效转义字符作为错误之前处理反斜杠字符\;反斜杠被默默地删除。例如,在Java字符串中,序列“\ z”将导致编译时错误。相反,这种方法会默默地删除反斜杠。因此,此方法将两个字符序列“\ b”视为等同于单个字符“b”。
反斜杠\
是一个以其他方式静默删除的转义字符。
答案 1 :(得分:4)
在属性文件中,您需要使用正斜杠:
C:/Users/Maurice/Desktop/Logs
或者,转义反斜杠:
C:\\Users\\Maurice\\Desktop\\Logs
答案 2 :(得分:3)
你需要转义斜杠,因为它们是特殊字符。请参阅:Java Properties backslash
答案 3 :(得分:2)
Java properties file format指示反斜杠字符(“\
”)转义后面的字符,因此要获得文字窗口路径,您必须具有:
logpath: C:\\Users\\Maurice\\Desktop\\Logs
但是,Java会自动为您转换路径分隔符,以适应运行时平台,因此您可以通过使用正斜杠来避免这种麻烦:
logpath: C:/Users/Maurice/Desktop/Logs
答案 4 :(得分:0)
您可以将Properties
存储到首先,然后重新加载以使用。 Properties
将负责逃避/取消任何事情。