Java:简历在URLConnection中下载

我写了一个程序,从一些服务器下载一些文件。
目前程序正常工作。
但是我想添加简历支持。
我这样做但是结果文件已损坏:

.... File fcheck=new File(SaveDir+"/"+filename); if(resumebox.isSelected() && fcheck.exists()){ connection.setRequestProperty("Range", "Bytes="+(fcheck.length())+"-"); } connection.setDoInput(true); connection.setDoOutput(true); BufferedInputStream in = new BufferedInputStream (connection.getInputStream()); pbar.setIndeterminate(false); pbar.setStringPainted(true); java.io.FileOutputStream fos ; if(resumebox.isSelected()){ if(fcheck.exists()){ if(connection.getHeaderField("Accept-Ranges").equals("bytes")){ fos = new java.io.FileOutputStream(SaveDir+"/"+filename,true); }else{ fos = new java.io.FileOutputStream(SaveDir+"/"+filename); } }else{ fos = new java.io.FileOutputStream(SaveDir+"/"+filename); } }else{ fos = new java.io.FileOutputStream(SaveDir+"/"+filename); } .... 

我在一台我知道支持恢复的服务器上testing它。
我下载了一些字节(72720)
然后试图恢复它。
然后我用hex编辑器打开文件,在偏移72720处重复第一个字节:
字节0-36:FLV ………….«………. onMetaData
字节72720-72756:FLV ………….«………. onMetaData
它开始从开始下载!
而当我通过wget来做到这一点,并通过Content-Range字段做出正确回应!
服务器在wget日志中使用“302 FOUND”和“206部分内容”做出响应。
“302 FOUND”会导致问题吗?

问题是什么 ?
谢谢。

尝试:

 connection.setRequestProperty("Range", "bytes=" + fcheck.length() + "-"); 

按规范小写范围说明符。 此外,如果你的部分文件是500字节,这意味着你的字节范围是0-499,你想500+。

问题出在(fcheck.length() - 1) :这应该是fcheck.length()