对下载文件是否完整的判断方法

1,使用MD5,本地文件下载完后去文件的md5值与服务器的该文件md5进行比对,一致证明下载完全。
2,比较文件的size,文件长度,下载完成取下File.length,与服务器的文件长度比对,一致则下载完全。
3,文件命名法,开始下载时,把文件命名为宜别名如xxx.tmp,下载完成后再把文件名称修改过来。只要正式的文件名存在,则是下载完全的。
          
           
[html]  view plain copy
  1. mMusicSourceFile = new File(MUSIC_FILE_PATH, mCurrentPlayMusic.getMusicName()+".tmp");  //按照SourceFile下载  
  2. mMusicDescFile = new File(MUSIC_FILE_PATH, mCurrentPlayMusic.getMusicName());  
  3.   
  4. mClient.downloadFile(new HttpGet(mCurrentPlayMusic.getMusicPath()), mMusicSourceFile)  
  5.   
  6. //下载成功后  
  7. mMusicSourceFile.renameTo(mMusicDescFile);  

   
         此时,要在download函数中对已下载长度是文件长度否一致进行判断,相当于在download中判断了文件是否下载完全
         
                 
[html]  view plain copy
  1. int len, mHasRead = 0;  
  2. byte[] buffer = new byte[8192];  
  3. final long size = response.getEntity().getContentLength();  
  4.   
  5. BufferedOutputStream outputStream = null;  
  6. InputStream inputStream = response.getEntity().getContent();  
  7. try {  
  8.     outputStream = new BufferedOutputStream(new FileOutputStream(mFile));  
  9.   
  10.     while (!Thread.interrupted() && (len = inputStream.read(buffer)) != -1) {  
  11.         outputStream.write(buffer, 0, len);  
  12.         mHasRead += len;  
  13.     }  
  14.     outputStream.flush();  
  15.   
  16.     return mHasRead == size;  
  17. } finally {  
  18.     if (outputStream != null)  
  19.         outputStream.close();  
  20.     if (inputStream != null)  
  21.         inputStream.close();  
  22. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值