通过文件的md5码比对两个文件是否一样
2016-03-01 10:09
323 查看
屌丝程序员的通病:好奇、试一试。哈哈,我之前一直很好奇百度云盘为什么有时几G上传文件几乎是秒杀,后来听前辈们说,它是假象,其实是它是先去资源库中找到有没有你的这个文件,如果有就不上传,具体他们用的哪种算法比对文件是否一样,我就不太清除。我通过获取文件的md5值判断文件是否相同,测试成功啦。可参考如下,如有更好的做法,欢迎指点迷津哦,不胜感激!
package com.lifeng; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.math.BigInteger; import java.security.MessageDigest; /** * 获取文件的md5值,从而比对两个文件是否相等 * @Description: TODO * @author lifeng * @date 2016年3月1日 上午9:34:15 * @version V1.0 */ public class MD5 { public static String getFileMD5(String filePath) throws Exception{ File file = new File(filePath); InputStream in = new FileInputStream(file); MessageDigest digest = MessageDigest.getInstance("MD5"); ; byte buffer[] = new byte[1024]; int len; while((len = in.read(buffer))!=-1){ digest.update(buffer, 0, len); } BigInteger bigInt = new BigInteger(1, digest.digest()); return bigInt.toString(16); } public static void main(String[] args) throws Throwable{ String f1 = getFileMD5("E://1.tmp"); String f2 = getFileMD5("E://2.tmp"); System.out.println(f1.equals(f2)+"=="+f1); } }
相关文章推荐
- LeetCode OJ刷题历程——Two Sum
- 北京Uber优步司机奖励政策(3月1日)
- (转)Android DiskLruCache完全解析,硬盘缓存的最佳方案
- 错误:readline/readline.h:没有那个文件或目录解决方法
- GIS导论(1)
- 九度题目1069
- 架构漫谈专栏系列文章
- 翻翻git之---实用的欢迎页开源库 AppIntro
- Touch 事件的分发与消费
- FPGA视频拼接器的4k 功能输入
- 翻翻git之---实用的欢迎页开源库 AppIntro
- opencv 连通域需要的函数解析
- 主函数参数
- jQuery获取某天的农历日期并判断是否除夕或新年的方法
- php5.3安装oracle的扩展oci8与pdo_oci
- Codeforces Round #340 (Div. 2) E. XOR and Favorite Number
- JAVA 生成随机数,并根据概率、比率
- 如何做到将apk大小减少6M
- Windows驱动开发(中间层)
- POJ 1384 Piggy-Bank(完全背包问题)