gpt4 book ai didi

android - Android 中的一些下载问题

转载 作者:行者123 更新时间:2023-11-29 22:10:11 25 4
gpt4 key购买 nike

我使用下面的代码来下载文件:

URL u = new URL(one.getSrcPath());
HttpURLConnection c = (HttpURLConnection) u.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.setReadTimeout(10000);
c.connect();
int lenghtOfFile = c.getContentLength();
FileOutputStream f = new FileOutputStream(new File(Environment.getExternalStorageDirectory() + "/" + SavePath, FileName);
InputStream in = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
int finishbyte = 0;
long total = 0;
while((len1 = in.read(buffer)) > 0) {
total += len1; //total = total + len1
f.write(buffer, 0, len1);
finishbyte++;
}
f.close();

我有两个问题:一、为什么我的下载任务下载失败频率很高?其次,如果我希望我的下载任务从断点恢复。我得到了 finishbyte。我该如何修改?

最佳答案

finishbyte两者不代表任何信息(除了调用read方法的次数,但肯定不是下载文件的大小),不相关,因为您已经写入了一个文件,并且可以使用 File.length() 方法来了解到目前为止您得到了多少。

恢复下载:

打开您的文件,检查大小,使用 http header 请求范围:

Range: <file.length()>-

(例如,如果您下载了 234 字节:

Range: 234-

如果服务器的响应代码是206 Partial Content,你可以附加到你的文件,如果是200,你必须覆盖你的文件(内容已经改变或不支持范围)

关于android - Android 中的一些下载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9818439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com