可以从URL获取File对象吗?我尝试类似
URL url = new URL(urlString);
File file = Paths.get(url.toURI()).toFile();
但它获得了异常
java.nio.file.FileSystemNotFoundException: Provider "http" not installed
或https ...取决于所使用的协议。假设urlString包含有效地址。
是否存在一种替代方法,可以从URL获得File对象,或者我走错路了?
答案 0 :(得分:0)
您需要打开与URL的连接,开始获取服务器发送给您的字节,并将其保存到文件中。
URL website = new URL("http://www.website.com/information.asp");
ReadableByteChannel rbc = Channels.newChannel(website.openStream());
FileOutputStream fos = new FileOutputStream("information.html");
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
另一种方法是使用apache common io库,您可以这样做:
URL url = new URL(urlString);
File file = new File("filename.html");
FileUtils.copyURLToFile(url, file);
答案 1 :(得分:0)
在将其传递给Paths.get()之前,尝试使用URI.getPath()
URL url = new URL(urlString);
File file = Paths.get(url.toURI().getPath()).toFile();