Если я вас правильно понял, вы хотите загрузить файл с HTTP-сервера, а затем загрузить его на FTP-сервер. В этом случае вам вообще не нужен объект File
. Это полезно, только если вы хотите сохранить его в файловой системе локального диска, но вам это не нужно. Все, что вам нужно сделать, это получить InputStream
файла с HTTP-сервера и затем отправить его на FTP-сервер.
Вот начальный пример того, как получить файл с HTTP-сервера в виде InputStream
.
InputStream input = new URL("http://example.com/image.jpg").openStream();
Просто не так ли? Убедитесь, что вы уважаете robots.txt
соответствующего сайта, иначе вы можете получить IP-бан.
Что касается FTP, базовая Java SE не предлагает никаких полезных API для этого, и я понятия не имею, какой FTP-клиент вы используете, поскольку ваш вопрос содержит только доморощенный и недокументированный код, поэтому вот только пример с Сеть Apache Commons Net FTPClient :
FTPClient ftp = new FTPClient();
ftp.connect("ftp.example.com");
ftp.login("username", "password");
ftp.storeFile("image.jpg", input); // <-- Here, it's just InputStream.
ftp.logout();
Вот и все.