java - 无法以编程方式解析 ${file.separator} 以读取属性路径

标签 java spring

我正在尝试读取一个包含文件路径的属性,其中包括路径中登录的用户名,如下所示。

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/

相关文章:

java - 有没有办法在spring boot的main方法中调用@Scheduled注解

java - 在 Java 中解析格式错误的 json

java - Java 入门(帮助)

java - Spring MVC 3-UDP Server+HTTP应用程序设计

java - 将 orm xml 从外部 Jar 加载到 Spring Boot 中

java - 在模块化 Spring 应用程序中支持 i18n 的最佳解决方案是什么?

java - Facebook 登录失败 : {Session state:CLOSED_LOGIN_FAILED, token :{AccessToken token:ACCESS_TOKEN_REMOVED permissions:[]}, appId:131***64547}

java - 纸牌戏法 Java

java - 如果Java中HashMap键相等,如何取2个最大值

java - Spring RestController 自定义 View 解析器