简历下载不能在android中工作

这个恢复下载的代码在Android中无法正常工作,虽然它在Java应用程序中工作正常。 在这里,我试图下载一个zip文件,它将恢复下载,但最终的结果是一个无效的zip文件。

BufferedInputStream in = null; FileOutputStream fos = null; BufferedOutputStream bout=null; try { downloaded=0; 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=" + downloaded + "-"); connection.connect(); size=connection.getContentLength(); Dialog.setMax(size); 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; System.out.println(downloaded); onProgressUpdate((int)(downloaded*100/size)); } succes=true; } catch (Exception e) { e.printStackTrace(); } finally { try { in.close(); bout.close(); } catch (IOException e) { e.printStackTrace(); } } 

谢谢。

Solutions Collecting From Web of "简历下载不能在android中工作"

 HttpURLConnection connection = (HttpURLConnection) url.openConnection(); int buf = 1024; 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 = new FileOutputStream(DESTINATION_PATH, downloaded == 0 ? false : true); bout = new BufferedOutputStream(fos, buf); byte[] data = new byte[buf]; while ((int x = in.read(data, 0, buf)) >= 0) { bout.write(data, 0, x); downloaded += x; progressBar.setProgress(downloaded); } 

您的zip文件已损坏,因为您认为该stream从您指定的范围字节中恢复。 它实际上是从头再次stream,所以你有一个比原来的文件更大。 长话短说,你的服务器不支持范围属性。