logpath = LoggerUtils.getProperties().getProperty("log.path");
System.out.println("logpath: " + logpath);
The above code returns:
logpath: C:UsersMauriceDesktopLogs
In the properties file is:
log.path C:\Users\Maurice\Desktop\Logs
How do I retain the file separators? I want this to work on Linux as well and not just Windows.
解决方案
Actually, you need to put this in the property file:
log.path C:\\Users\\Maurice\\Desktop\\Logs
See this:
more precisely the load method:
Scroll down a bit and you will see this among other things:
The method does not treat a backslash character, \, before a non-valid escape character as an error; the backslash is silently dropped. For example, in a Java string the sequence "\z" would cause a compile time error. In contrast, this method silently drops the backslash. Therefore, this method treats the two character sequence "\b" as equivalent to the single character 'b'.
Backslash \ is an escape character that is silently dropped otherwise.
代码示例中,从属性文件读取的`log.path`在Windows上返回了带有反斜杠的路径,但在Linux下需要正确处理路径分隔符。解决方法是在属性文件中使用双反斜杠来表示路径,如`log.path=C:UsersMauriceDesktopLogs`。这样,Java会忽略多余的反斜杠,并在不同操作系统上保持路径的正确性。

被折叠的 条评论
为什么被折叠?



