настоящее время у меня следующий код, который считывает файл, расположенный в Интернете, и записывает его в файл по телефону:Можно определить размер файла для загрузки?
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);
Кто-нибудь знает, можно ли (с помощью установки выше или иным образом), чтобы определить общее количество байтов, которые должны быть прочитаны до начала загрузки (чтобы опубликовать процентный прогресс для пользователя при продолжении загрузки)?
Также длина содержимого может быть -1, если сервер не поддерживает это или по какой-либо причине размер файла неизвестен. –
ВНИМАНИЕ: 'url.openConnection(). GetContentLength()' будет делать 'GET', а не' HEAD'. См. Ответ от Santosh ниже для лучшего метода (т. Е. Do 'connection.setRequestMethod (" HEAD ")' перед вызовом 'getContentLength()'). –