Java属性,获取文件路径

logpath = LoggerUtils.getProperties().getProperty("log.path"); System.out.println("logpath: " + logpath); 

上面的代码返回:

 logpath: C:UsersMauriceDesktopLogs 

在属性文件中是:

 log.path C:\Users\Maurice\Desktop\Logs 

如何保留文件分隔符? 我希望这也适用于Linux,而不仅仅是Windows。

实际上,您需要将其放在属性文件中:

 log.path C:\\Users\\Maurice\\Desktop\\Logs 

看到这个:

更精确的load方法:

向下滚动一下,您会看到以下内容:

该方法不会在非有效转义字符作为错误之前处理反斜杠字符\; 反斜杠是默默地丢弃的。 例如,在Java字符串中,序列“\ z”将导致编译时错误。 相反,这种方法会默默地删除反斜杠。 因此,此方法将两个字符序列“\ b”视为等同于单个字符“b”。

反斜杠\是一个以其他方式静默删除的转义字符。

在属性文件中,您需要使用正斜杠:

 C:/Users/Maurice/Desktop/Logs 

或者,转义反斜杠:

 C:\\Users\\Maurice\\Desktop\\Logs 

您需要转义斜杠,因为它们是特殊字符。 请参阅: Java属性反斜杠

Java 属性文件格式规定反斜杠字符(“ \ ”)转义后面的字符,因此要获得文字窗口路径,您必须具有:

 logpath: C:\\Users\\Maurice\\Desktop\\Logs 

但是,Java会自动为您转换路径分隔符,以适应运行时平台,因此您可以通过始终使用正斜杠来避免这种麻烦:

 logpath: C:/Users/Maurice/Desktop/Logs 

您可以先将 Properties存储到文件中,然后再次加载以使用。 Properties将负责逃避/取消任何事情。