我在Android中使用okhttp库下载文件。我已成功下载,但是当我暂停并恢复下载时出现了一些问题。
Response request = new Request.Builder().url(url).build();
ResponseBody responseBody = response.body();
File file = new File(filePath);
BufferedInputStream input = new BufferedInputStream(responseBody.byteStream());
OutputStream output;
if (isResume) {
output = new FileOutputStream(file, true);
input.skip(downloadedSize);
} else {
output = new FileOutputStream(file, false);
}
long totalByteSize = responseBody.contentLength();
byte[] data = new byte[1024];
int count = 0;
while ((count = input.read(data)) != -1) {
downloadedSize += count;
output.write(data, 0, count);
}
问题在于例如文件大小为10MB。 当下载了3MB时我暂停下载,然后继续下载,当下载完成时文件大小变为13MB。 它不是从已下载的大小开始恢复下载,而是从字节流的开头开始下载。 所以文件变成13MB。 代码哪里出错了?