В настоящее время программа работает нормально.
Но я хочу добавить в нее поддержку резюме.
Я делаю это так, но файл результатов поврежден:
Код: Выделить всё
....
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);
}
....
Я скачал несколько байтов. (72720)
Затем попытался возобновить его.
Затем я открыл файл в шестнадцатеричном редакторе. По смещению 72720 повторяются первые байты:
Байты 0-36: FLV. ............«..........onMetaData
Байты 72720–72756: FLV............ .«..........onMetaData
Начинается загрузка с самого начала!
Хотя, когда я делаю это с помощью wget, все работает правильно и ответы по содержимому -Поле диапазона!
Ответы сервера с «302 FOUND» и «206 Partial Content» в журнале wget.
Может ли «302 FOUND» стать причиной проблемы?
В чем проблема?
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/341 ... connection