que actualmente tiene el siguiente código que se lee un archivo que se encuentra en la web y lo escribe en un archivo en el teléfono:¿Se puede determinar el tamaño del archivo que se descargará?
InputStream inputStream = new URL(sourceFileWebAddress).openStream();
BufferedInputStream bufferedInputStream = new BufferedInputStream(inputStream);
FileOutputStream fileOutputStream = new FileOutputStream(targetFile);
int count;
byte buffer[] = new byte[1024];
while ((count = bufferedInputStream.read(buffer, 0, buffer.length)) != -1)
fileOutputStream.write(buffer, 0, count);
¿Alguien sabe si es posible (utilizando la configuración anterior o de otro modo) para determinar el número total de bytes que se deben leer antes de comenzar con la descarga (para publicar el progreso porcentual al usuario a medida que avanza la descarga)?
También la longitud del contenido puede ser -1 si el servidor no es compatible con esto o por alguna razón el tamaño del archivo es desconocido. –
ADVERTENCIA: 'url.openConnection(). GetContentLength()' hará un 'GET' y no un' HEAD'. Consulte la respuesta de Santosh a continuación para obtener un mejor método (es decir, haga 'connection.setRequestMethod (" HEAD ")' antes de llamar a 'getContentLength()'). –