java - URL 无法打开文件 :\C filepath in Java

标签 java url path uri filepath

我需要使用 URL(java.net.URL) 打开文件名,如下所示:

file:/C:/RAdev/Basic/src/test/resources/xml Data/test dir/app-config-seed-data.xml

我要阅读以下java代码

                fileURL = new File(filePath).toURI().toURL();
                is = fileURL.openStream();

由于 Windows 可以访问 file:\,因此即使 URL 也应该能够打开。

目前使用的解决方法:

            public static final String FILE_URL_PREFIX = "file:";
            if (filePath.contains(FILE_URL_PREFIX)) {
                filePath = filePath.replaceAll("file:/", ""); 
                System.out.println("Modified filepath - " + filePath);
            }
            fileURL = new File(filePath).toURI().toURL();
            is = fileURL.openStream();

是否需要上述解决方法,请告诉我是否有其他方法来获得 URL 访问的好处。我对 java 中的 URL/URI 很陌生,非常感谢您的帮助。

谢谢。

最佳答案

file:/C:/ 不是有效的文件 URL。尝试以 file://C:/ 开头您的网址。

此外,File(String) 构造函数不采用 URL,而是采用本地文件路径。如果您有一个要解析的字符串形式的 URL,请使用 URL(String) 构造函数:

URL fileURL = new URL("file://C:/RAdev/Basic/src/test/resources/xml Data/test dir/app-config-seed-data.xml");
is = fileURL.openStream();

关于java - URL 无法打开文件 :\C filepath in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36089168/

相关文章:

javascript - 带有 URL 参数的 URL 在浏览器中连接起来

java - Android 保存和加载 PATH 对象的最佳方式。

python - 如何知道python运行脚本的路径?

java - 找不到主类 : org.netbeans.modules.web.project.ant.JspCSingle。程序将会退出

java - 带日期的 ParseException?

java - JVM 流 API 回滚

c# - 使用 C# 检查 URL 是否存在

.net - FxCop 告诉我使用 .Net Uri 类是不是错了?

macos - 添加带空格的路径在 OSX El Capitan 中不起作用

java - 将新值添加到现有数组的开头