我需要使用URL(java.net.URL)打开文件名,如下所示:
file:/ C:/ RAdev / Basic / src / test / resources / xml数据/测试 DIR / APP-CONFIG-种子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的新手,非常感谢帮助。
感谢。
答案 0 :(得分:2)
file:/C:/
不是有效的文件网址。尝试使用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();
答案 1 :(得分:1)
在Darth Android建议的基础上添加以下实现工作:
URL url = new URL(filePath);
URI uri = new URI(url.getProtocol(), url.getUserInfo(), url.getHost(),
url.getPort(), url.getPath(), url.getQuery(),
url.getRef());
URL fileURL = uri.toURL();
InputStream is = fileURL.openStream();