我有以下问题.在我们的集成测试中,我们使用不同的配置,它将在测试之前使用以下代码从测试资源加载:
URL resource = ClassLoader.getSystemResource("application.conf");
Run Code Online (Sandbox Code Playgroud)
只要路径中没有特殊字符,这就可以正常工作.例如,具有以下正确路径
D:/Dev/projects/#FLI/flinsta/fgraph/build/resources/test/application.conf
Run Code Online (Sandbox Code Playgroud)
将导致以下错误的文件路径getSystemResource:
D:/Dev/projects/%23FLI/flinsta/fgraph/build/resources/test/application.conf
Run Code Online (Sandbox Code Playgroud)
然后,这将导致一个根本不存在的文件.我怎样才能确保不会发生这样的事情.重命名路径是一种选择.但是,我想找到一个解决方案而不是解决方法.
感谢您的任何帮助!
在评论的帮助下回答我自己的问题:
URL resource = ClassLoader.getSystemResource("application.conf");
String configPath = URLDecoder.decode(resource.getFile(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)
变量configPath则包含正确的路径.