android黑窗口获取md5_android开发中怎么获取文件的正确md5值

匿名用户

1级

2016-08-12 回答

package my.bag;

import java.io.File;

import java.io.FileInputStream;

import java.math.BigInteger;

import java.security.MessageDigest;

import java.util.HashMap;

import java.util.Map;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

public class FileDigest extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

File file = new File("/mnt/sdcard/123.txt");

Log.e("MD5", getFileMD5(file));

}

public static String getFileMD5(File file) {

if (!file.isFile()) {

return null;

}

MessageDigest digest = null;

FileInputStream in = null;

byte buffer[] = new byte[1024];

int len;

try {

digest = MessageDigest.getInstance("MD5");

in = new FileInputStream(file);

while ((len = in.read(buffer, 0, 1024)) != -1) {

digest.update(buffer, 0, len);

}

in.close();

} catch (Exception e) {

e.printStackTrace();

return null;

}

BigInteger bigInt = new BigInteger(1, digest.digest());

return bigInt.toString(16);

}

public static Map getDirMD5(File file, boolean listChild) {

if (!file.isDirectory()) {

return null;

}

Map map = new HashMap();

String md5;

File files[] = file.listFiles();

for (int i = 0; i < files.length; i++) {

File f = files[i];

if (f.isDirectory() && listChild) {

map.putAll(getDirMD5(f, listChild));

} else {

md5 = getFileMD5(f);

if (md5 != null) {

map.put(f.getPath(), md5);

}

}

}

return map;

}

}

最后不要忘了在manifest中添加权限

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值