¿Cómo se descarga parte de un archivo usando Java?
-
29-09-2019 - |
Pregunta
Estoy usando este código Java para descargar un archivo desde Internet:
String address = "http://melody.syr.edu/pzhang/publications/AMCIS99_vonDran_Zhang.pdf";
URL url = new URL(address);
System.out.println("Opening connection to " + address + "...");
URLConnection urlC = url.openConnection();
urlC.setRequestProperty("User-Agent", "");
urlC.connect();
InputStream is = urlC.getInputStream();
FileOutputStream fos = null;
fos = new FileOutputStream("myFileName");
int oneChar, count = 0;
while ((oneChar = is.read()) != -1) {
System.out.print((char)oneChar);
fos.write(oneChar);
count++;
}
is.close();
fos.close();
System.out.println(count + " byte(s) copied");
Me gustaría saber si hay alguna manera de descargar sólo una parte de un archivo. Por ejemplo, para un archivo de 5 MB para descargar la última 2MB.
Solución
Si el servidor lo admite (y los servidores HTTP 1.1 debe ), puede utilizar las solicitudes de intervalo:
http://www.w3.org/Protocols/ RFC2616 / RFC2616-sec14.html # sec14.35
Además, la lectura de un carácter a la vez es altamente ineficiente -. Que debería estar leyendo en bloques, por ejemplo 4, 16 o 32 KB
Otros consejos
Por favor, eche un vistazo a Java: Continuar descarga en URLConnection
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow