Файловый объект из URL с http или https - PullRequest
0 голосов
/ 04 января 2019

Можно получить объект File из URL? Я пытаюсь что-то вроде

URL url = new URL(urlString);
File file = Paths.get(url.toURI()).toFile();

но получено исключение

java.nio.file.FileSystemNotFoundException: Provider "http" not installed

или https ... в зависимости от используемого протокола. Предположим, что urlString содержит действительный адрес.

Существуют альтернативы, чтобы получить объект File из URL, или я ошибаюсь?

Ответы [ 2 ]

0 голосов
/ 05 июля 2019

Попробуйте использовать URI.getPath () перед передачей его в Paths.get ()

URL url = new URL(urlString);
File file = Paths.get(url.toURI().getPath()).toFile();
0 голосов
/ 04 января 2019

Вам нужно открыть соединение с URL, начать получать байты, которые сервер отправляет вам, и сохранить их в файл.

Использование Java NIO

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

Другой подход заключается в использовании библиотеки Apache common io , и вы можете сделать это следующим образом:

URL url = new URL(urlString);
File file = new File("filename.html");
FileUtils.copyURLToFile(url, file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...