Java属性,获取文件路径

时间:2012-02-21 02:23:26

标签: java properties filepath

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

上面的代码返回:

logpath: C:UsersMauriceDesktopLogs

在属性文件中是:

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

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

5 个答案:

答案 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将负责逃避/取消任何事情。