對下載文件是否完整的判斷方法

1,使用MD5,本地文件下載完後去文件的md5值與服務器的該文件md5進行比對,一致證實下載徹底。html

2,比較文件的size,文件長度,下載完成取下File.length,與服務器的文件長度比對,一致則下載徹底。
3,文件命名法,開始下載時,把文件命名爲宜別名如xxx.tmp,下載完成後再把文件名稱修改過來。只要正式的文件名存在,則是下載徹底的。
          
           

mMusicSourceFile = new File(MUSIC_FILE_PATH, mCurrentPlayMusic.getMusicName()+".tmp"); //按照SourceFile下載
mMusicDescFile = new File(MUSIC_FILE_PATH, mCurrentPlayMusic.getMusicName());服務器

mClient.downloadFile(new HttpGet(mCurrentPlayMusic.getMusicPath()), mMusicSourceFile)函數

//下載成功後
mMusicSourceFile.renameTo(mMusicDescFile);spa

   
         此時,要在download函數中對已下載長度是文件長度否一致進行判斷,至關於在download中判斷了文件是否下載徹底
         
                 

int len, mHasRead = 0;
byte[] buffer = new byte[8192];
final long size = response.getEntity().getContentLength();

BufferedOutputStream outputStream = null;
InputStream inputStream = response.getEntity().getContent();
try {
  outputStream = new BufferedOutputStream(new FileOutputStream(mFile));

  while (!Thread.interrupted() && (len = inputStream.read(buffer)) != -1) {
    outputStream.write(buffer, 0, len);
    mHasRead += len;
  }
  outputStream.flush();

  return mHasRead == size;
} finally {
if (outputStream != null)
  outputStream.close();
  if (inputStream != null)
  inputStream.close();
} htm

相關文章
相關標籤/搜索