[java]用md5来判断两个文件是否完全相同

1. 前言

  由于相比较两张图片是否是相同,如果通过像素点比较感觉速度比较慢,当很多图片进行比较时,效率就低很多了。由于每个文件md5基本上是唯一的,所以用获取文件的md5来判断是否相同文件。

2. 代码如下:

import java.io.FileInputStream;
import java.io.IOException;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.io.IOUtils;

public class TestMd5 {

  public static void main(String[] args) throws IOException {
	// TODO Auto-generated method stub	
	String path="C:\Test\img\p1.jpg"; 
	String path2="C:\Test\img\p2.jpg"; 
        
        FileInputStream fis= new FileInputStream(path);    
        String md5 = DigestUtils.md5Hex(IOUtils.toByteArray(fis));    
        IOUtils.closeQuietly(fis);    
        System.out.println("p1_MD5:"+md5); 
        
        FileInputStream fis2= new FileInputStream(path2);    
        String md52 = DigestUtils.md5Hex(IOUtils.toByteArray(fis2));    
        IOUtils.closeQuietly(fis2);    
        System.out.println("p2_MD5:"+md52); 
		
	}
}

执行后的log如下:

p1_MD5:699418360ea96b76c0d4cb701decd2e7
p2_MD5:699418360ea96b76c0d4cb701decd2e7

3. 图片资源

link: p1.jpg p2.jpg is just rename p1.jpg.

原文地址:https://www.cnblogs.com/fanbi/p/6847085.html