我正在尝试读取一个包含文件路径的属性,其中包括路径中登录的用户名,如下所示。
test.file = ${file.separator}test${file.separator}${user.name}${file.separator}file.txt
当我在类中使用 @Value 注释读取属性以及在 pom.xml 中将其用作参数时,我能够读取具有操作系统特定路径(/- unix 或 -windows)的文件。
当我从属性文件中将其读取为常规属性时,spring 会将其读取为另一个预期的字符串值。
但是如果我将此值传递给 File 构造函数,${file.separator} 不会得到解析..
在属性文件中表示文件分隔符的最佳方式是什么?我想避免使用 .replace 技术在代码中用 File.separator 替换变量。
最佳答案
如果您只是在寻找与平台无关的文件分隔符,那么我们一直在使用 /
分隔符,没有任何问题。
path=C:/Users/<user_name>/myconfig.properties
path=/Users/<user_name>/myconfig.properties
以下代码在两个系统上始终返回 true。
finput = new File(prop.getProperty("path"));
System.out.println(finput.exists());
关于java - 无法以编程方式解析 ${file.separator} 以读取属性路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48616033/