Ho provato un paio di byte mentre i metodi di loop e questo metodo di seguito:come scaricare un file in 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();
}
}
Ma i metodi semplicemente non sono molto efficiente/veloce. Ho scoperto gli Apache Utils e sto usando
IOUtils.copy(new URL("http://ds-forums.com/kyle-tests/uploads/Screenshots.zip").openStream(), new FileOutputStream(System.getProperty("user.home").replace("\\", "/") + "/Desktop/Screenshots.zip"));
ma è il metodo migliore? Sono così confuso in questo momento quale metodo è il migliore per scaricare un file zip 26mb. (Il file qui sopra è solo 1mb, sto testando i metodi)
Sto chiedendo solo di vedere se qualcun altro si è mai imbattuto in questo problema e forse potrebbero aiutarmi. Grazie.
Ti suggerisco di scaricare il file con più di un thread. Dai un'occhiata al codice sorgente di jDownloader. – fardjad