我试图寻找一些方法来帮助恢复下载,我找到了以下代码。我不明白这行是什么意思。
if(ISSUE_DOWNLOAD_STATUS.intValue()==ECMConstant.ECM_DOWNLOADING) 这里的ECMConstant是什么?
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);
}谢谢。
发布于 2013-06-20 22:04:16
ECMConstant可以是任何东西。如果你没有ECMConstant的完整代码或库,就没有办法知道它是什么。
如果你的疑问是如何恢复下载,你需要做的一切就是处理你的头,请求属性,或者你的服务器需要恢复它的东西,如下所示:
Map<String, String> headers = new HashMap<String, String>();
if (isResuming) {
File fileToResume = new File(filePath);
if (fileToResume.exists()) {
headers.put("Range", "bytes=" + fileToResume.length() + "-");
}
}其中isResuming是您是否继续下载的标志。
https://stackoverflow.com/questions/17215376
复制相似问题