URL url = new URL("http://download.thinkbroadband.com/20MB.zip");
URLConnection connection = url.openConnection();
File fileThatExists = new File(path);
OutputStream output = new FileOutputStream(path, true);
connection.setRequestProperty("Range", "bytes=" + fileThatExists.length() + "-");
connection.connect();
int lenghtOfFile = connection.getContentLength();
InputStream input = new BufferedInputStream(url.openStream());
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
output.write(data, 0 , count);
}
在这段代码中,我尝试恢复下载。目标文件为20MB。但是,当我停止在10mb上下载时,然后遇到麻烦,我得到的文件大小为30MB。似乎它继续写入文件,但不能部分从服务器下载。Wget -c非常适合该文件。如何恢复文件下载?
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
if(ISSUE_DOWNLOAD_STATUS.intValue()==ECMConstant.ECM_DOWNLOADING){
File file=new File(DESTINATION_PATH);
if(file.exists()){
downloaded = (int) file.length();
connection.setRequestProperty("Range", "bytes="+(file.length())+"-");
}
}else{
connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
}
connection.setDoInput(true);
connection.setDoOutput(true);
progressBar.setMax(connection.getContentLength());
in = new BufferedInputStream(connection.getInputStream());
fos=(downloaded==0)? new FileOutputStream(DESTINATION_PATH): new FileOutputStream(DESTINATION_PATH,true);
bout = new BufferedOutputStream(fos, 1024);
byte[] data = new byte[1024];
int x = 0;
while ((x = in.read(data, 0, 1024)) >= 0) {
bout.write(data, 0, x);
downloaded += x;
progressBar.setProgress(downloaded);
}
这不是我的代码,但是可以。
问题内容: 我正在使用python 2.7请求模块使用以下代码下载二进制文件,如何使此代码从部分下载的文件中“自动恢复”下载。 如果可能的话,我宁愿只使用模块来实现这一目标。 问题答案: 如果Web服务器支持范围请求,则可以将Range标头添加到您的请求中: 您将收到StartPos和StopPos之间的部分。如果不知道StopPos,请使用: 因此您的代码将是:
问题内容: 我编写了一个程序,可以从某些服务器下载一些文件。 当前程序正常运行。 但我想为其添加简历支持。 我正在这样做,但结果文件已损坏: 我正在我知道支持简历的服务器上对其进行测试。 我下载了一些字节。(72720) 然后尝试恢复它。 然后,我使用Hex编辑器打开文件,在偏移量72720处,重复第一个字节: 字节0-36:FLV .............«..... onMetaData 字
问题内容: 我正在尝试在下载管理器中实现暂停/恢复,我在网上搜索并阅读了几篇文章,并根据它们更改了我的代码,但是恢复似乎无法正常工作,有什么想法吗? 问题答案: 好的问题已解决,这是我的其他想要实现暂停/恢复的用户的代码:
我正在使用Python3.5请求模块下载一个文件,使用下面的代码,如何使这段代码“自动恢复”从部分下载的文件下载。 如果可能的话,我宁愿只使用模块来实现这一点。
我的项目运行正常。我只是做了一次Lint检查,它给了我所有项目的错误。所以我刚刚清理了我的项目。但现在它并没有生成R.java文件。我怎样才能找回它。我试着建造。。但它不起作用
我正在开发一个nodejs应用程序,其中我有一个超文本传输协议服务器,它响应传入的POST命令。我确实需要返回整个二进制文件。我可以用 但是我不想将整个文件存储在内存中,我想通过块发送它。还有其他方法吗?我谷歌了一下,没有成功。 提前感谢,,