您的位置:首页 > 编程语言 > Java开发

JAVA计算文件的MD5值

2012-12-08 11:10 363 查看
import java.io.File;

import java.io.FileInputStream;

import java.math.BigInteger;

import java.security.MessageDigest;

import java.util.HashMap;

import java.util.Map;

public class FileDigest {

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<String,
String> getDirMD5(File
file,boolean listChild)
{

if(!file.isDirectory()){

return
null
;

}

//<filepath,md5>

Map<String,
String> map=new HashMap<String,
String>();

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;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: