Вы можете использовать Java, URL класс для загрузки файла, но это требует небольшой работы.Вам нужно будет сделать следующее:
- Создать точку объекта URL в файле
- Вызвать
openStream()
, чтобы получить InputStream
- Открыть файлВы хотите записать в (a
FileOutputStream
) - Чтение из
InputStream
и запись в файл, пока не останется больше данных для чтения - Закройте входной и выходной потоки
Неважно, какой тип загружаемого вами файла (факт, что это исполняемый файл не имеет значения), так как процесс являетсяТо же самое для файлов любого типа.
Обновление: Похоже, что вам действительно нужно подключить URL-адрес веб-страницы к приложению Java и получитьПриложение Java найдите ссылку на странице, а затем загрузите эту ссылку.Если это так, формулировка вашего вопроса очень неясна, но вот основные шаги, которые я бы использовал:
- Во-первых, используйте шаги 1 и 2 выше, чтобы получить
InputStream
дляpage - Используйте что-то вроде TagSoup или jsoup для анализа HTML
- Найдите нужный элемент
<a>
и извлеките его href
атрибут для получения URL-адреса файла, который нужно загрузить (если это относительный URL-адрес, а не абсолютный, вам нужно будет сопоставить этот URL-адрес с URL-адресом исходной страницы) - Используйте описанные выше шаги для загрузки этогоURL
Вот небольшой ярлык, основанный на jsoup
(который я никогда раньше не использовал, я просто пишу это из фрагментов, украденных с их веб-страницы).Я пропустил много проверок на ошибки, но, эй, я обычно взимаю за это:
Document doc = Jsoup.connect(pageUrl).get();
Element aElement = doc.getElementsByTag("a").first() // Obviously you may need to refine this
String newUrl = aElement.attr("abs:href"); // This is a piece of jsoup magic that ensures that the destination URL is absolute
// assert newUrl != null
URL fileUrl = new URL(newUrl);
String destPath = fileUrl.getPath();
int lastSlash = destPath.lastIndexOf('/');
if (lastSlash != -1) {
destPath = destPath.substring(lastSlash);
}
// Assert that this is really a valid filename
// Now just download fileUrl and save it to destPath
правильный способ определить, каким должно быть имя файла назначения (если вы не указали жесткий код)это) фактически ищет заголовок Content-Disposition
и ищет бит после filename=
.В этом случае вы не можете использовать openStream()
в URL, вам нужно будет использовать openConnection()
вместо этого, чтобы получить URLConnection
.Затем вы можете использовать getInputStream()
, чтобы получить InputStream
и getRequestProperty("Content-Disposition")
, чтобы получить заголовок для определения вашего имени файла.В случае, если этот заголовок отсутствует или имеет неправильный формат, вам следует использовать описанный выше метод для определения имени файла назначения.