我正在尝试读取包含文件路径的属性,包括在路径中登录的用户名,如下所示。
test.file = $ {file.separator} test $ {file.separator} $ {user.name} $ {file.separator} file.txt
当我在类中使用@Value注释读取属性并在pom.xml中将其用作参数时,我能够读取具有OS特定路径(/ - unix或-windows)的文件。
当我从属性文件中将其作为常规属性读取时,spring将其作为预期的另一个字符串值读取。
但如果我将此值传递给File构造函数,则$ {file.separator}无法解析..
在属性文件中表示文件分隔符的最佳方法是什么?我想避免使用.replace技术在代码中用File.separator替换变量。
答案 0 :(得分:1)
如果您只是寻找一个平台中立的文件分隔符,那么我们一直在使用/
分隔符而没有任何问题。
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());