j**a 文件内容 比较

时间:2013.09.10 发布人:ncxtf

j**a 文件内容 比较

已解决问题

谷歌ncxtf用户在2013.09.10提交了关于“一个人j**a 文件内容 比较”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-08-12T15:55:27。如何比较两个文件(任意文件类型)是否相同,就是长度内容等都完全相同,开源工具或者函数等都行,只需要比较是否相同,不管在哪里有不同希望大家能够帮助她。

详细问题描述及疑问:如何比较两个文件(任意文件类型)是否相同,就是长度内容等都完全相同,开源工具或者函数等都行,只需要比较是否相同,不管在哪里有不同期待您的答案,滴水之恩,来日我当涌泉相报 !

希望以下的回答,能够帮助你。

第1个回答

用户名:ziyan120  

比较文件的MD5即可

importj**a.io.File;
importj**a.io.FileInputStream;
importj**a.math.BigInteger;
importj**a.security.MessageDigest;
import问答j**a.util.h**ashMap;
importj**a.***.Map;

publicc防另坏据切历封旧去lassFileDigest{
/**
*获取单个文件的MD5值!
*@paramfile
*@return
*/
publicstaticStringgetFileMD5(Filefile){
if(!file.isFile()){
return**ll;
造}
MessageDi叶板约真烈乐晶gestdigest=**ll;
FileInputStreamin=**ll;
bytebuffer[]=newbyte[1024];
intlen;
try{
digest=MessageDigest.getInstance("MD5");
in=newFileInputStr培历eam(file);
while((len=***.read(buffer,0,1024))!=-1){
digest.up采婷date(buffer,0,len);
}
in.close();
}catch(Exceptione){
e.pri席一编换握植粮降在ntStackTrace()跳庆;
return**ll;
}
BigIntegerbigInt=newBigInt振弦浓eger(1,digest省班聚数齐汽威刑金.digest());
returnbigInt.to烟右国调派创右水String(16);
}

/**
*获取文件夹中文件的MD5值
*@paramfile
*@paramlistChild;true递归子目录中的文件
*@return
*/
publicstaticMap<String,String>getDirMD5(Filefile,booleanlistChild){
if(!file.isDirectory()哪部六够弱给观西经况){
returnnull;
}
//<filepath,md5>
Map<String,String>map=newh**ashMap<String,String>();
Stringmd5;
Filefiles[]=file.listFiles();
for(inti=0;i<files.length;i++){
Filef=files[i];
if(f.isDi商备如rectory()&&listChild){
map.putAll(getDirMD5(f,listChild));
}else{
md5=ge更评tFileMD5(f);
if(md5!=**ll){
map.put(f.getPath(),md5);
}
}
}
re便子方谈北记兴包矿阻似turnmap;
}

p说赶回故溶尼ublicstaticvoidmain(String[]args){
Filefile1影均代=newFile("a.txt");
Filefile2=newFile("b伟高富尽而植只击员验球.txt");
System容践良展卷草.out.println(getFileMD5(file1).equals(getFileMD5(file2)));
}

}