android 文件MD5加密 对SD卡的操作

  File filePath;
   if (Environment.getExternalStorageState().equals(
     Environment.MEDIA_MOUNTED))// 判断是否插入SD卡
   {    filePath = Environment.getExternalStorageDirectory(); // 获得sdcard的路径
    StatFs stat = new StatFs(filePath.getPath()); // 创建StatFs对象,这个对象很重要SD卡的信息就靠它获取了
    long blockSize = stat.getBlockSize(); // 获得block的大小
    float totalBlocks = stat.getBlockCount(); // 获得总容量
    int sizeInMb = (int) (blockSize * totalBlocks) / 1024 / 1024; // 转换成单位是兆的
    long availableBlocks = stat.getAvailableBlocks(); // 获得可用容量
    float percent = availableBlocks / totalBlocks; // 获得可用比例
    percent = (int) (percent * 1000); // 舍去多余小数位数
    FileByMD5 m_md5 = new FileByMD5();
    String request = m_md5.md5sum(fDir + "/xxxx.xml");
   }
public class FileByMD5 {  private char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7','8', '9',
    'A', 'B', 'C', 'D', 'E', 'F' };  public String toHexString(byte[] b) 
  {
   StringBuilder sb = new StringBuilder(b.length * 2);
   for (int i = 0; i < b.length; i++) 
   {
    sb.append(HEX_DIGITS[(b[i] & 0xf0) >>> 4]);
    sb.append(HEX_DIGITS[b[i] & 0x0f]);
   }
   return sb.toString();
  }  public String md5sum(String filename) 
  {
   InputStream fis;
   byte[] buffer = new byte[1024];
   int numRead = 0;
   MessageDigest md5;
   try 
   {
    fis = new FileInputStream(filename);
    md5 = MessageDigest.getInstance("MD5");
    while ((numRead = fis.read(buffer)) > 0) 
    {
     md5.update(buffer, 0, numRead);
    }
    fis.close();
    return toHexString(md5.digest());   } 
   catch (Exception e)
   {
    System.out.println("error");
    return null;
   }
  }
 } nbsp;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值