Tôi hiện đang có các mã sau đó đọc một tập tin nằm trên web và ghi nó vào một tập tin trên điện thoại:Có thể xác định kích thước tệp cần tải xuống?
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);
Có ai biết cho dù đó là có thể (bằng cách sử dụng cài đặt trên hay cách khác) để xác định tổng số byte sẽ được đọc trước khi bắt đầu tải xuống (để xuất bản tiến độ phần trăm cho người dùng dưới dạng số tiền tải xuống)?
Ngoài ra độ dài nội dung có thể là -1 nếu máy chủ không hỗ trợ điều này hoặc vì lý do nào đó, kích thước tệp không xác định. –
CẢNH BÁO: 'url.openConnection(). GetContentLength()' sẽ thực hiện 'GET' chứ không phải' HEAD'. Xem câu trả lời từ Santosh bên dưới để biết phương thức tốt hơn (tức là, thực hiện 'connection.setRequestMethod (" HEAD ")' trước khi gọi 'getContentLength()'). –