Я пытался несколько байт то время как методы цикла и этот метод ниже:Как скачать файл в java?
try {
URL dl = null;
dl = new URL("http://ds-forums.com/kyle-tests/uploads/Screenshots.zip");
ReadableByteChannel rbc = Channels.newChannel(dl.openStream());
FileOutputStream fos = new FileOutputStream(fileName + "Screenshots.zip");
fos.getChannel().transferFrom(rbc, 0, 1 << 24);
System.out.println(fos.getChannel().size());
fos.close();
rbc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
Но методы просто не очень эффективны/быстро. Я узнал об apache Utils, и я использую
IOUtils.copy(new URL("http://ds-forums.com/kyle-tests/uploads/Screenshots.zip").openStream(), new FileOutputStream(System.getProperty("user.home").replace("\\", "/") + "/Desktop/Screenshots.zip"));
но это лучший способ? Я сейчас так запутался, какой метод лучше всего подходит для загрузки заархивированного файла 26mb. (Файл выше всего лишь 1 мб. Я тестирую методы)
Я прошу только посмотреть, кто-то еще когда-либо сталкивался с этой проблемой и, возможно, они могли мне помочь. Благодарю.
Предлагаю вам скачать файл более чем с одним потоком. Взгляните на исходный код jDownloader. – fardjad