He probado unos cuantos bytes mientras que los métodos de bucle y este método a continuación:cómo descargar un archivo en 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();
}
}
Sin embargo, los métodos no son muy eficientes/rápido. Me enteré sobre Apache Utils y estoy 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"));
pero ¿es ese el mejor método? Estoy tan confundido en este momento qué método es el mejor para descargar un archivo comprimido de 26mb. (El archivo de arriba es solo 1mb estoy probando métodos)
Solo estoy preguntando si alguien más se encontró con este problema y quizás podrían ayudarme. Gracias.
Le sugiero que descargue el archivo con más de un hilo. Eche un vistazo al código fuente jDownloader. – fardjad