问题的提出:怎样用java实现文件的比较,比如两张图片是否相同,或任意两个文件是否为同一个文件?

解决思路:

文件进行比较是否相同,只要用于图片的比较,其它文件也可以的

比较的思路,首先比较两个文件大小是否相同,大小不相等肯定不是同一个文件

然后再比较文件的md5值 ,md5值不相等的两个文件肯定也不是同一个文件

用途:如做爬虫抓取图片,可以根据网址路径进行判断 ,但还是有网址路径不同,但图片内容是相同的,那就可以避免重复下载

package com.wyxbc.md5;import java.io.File;
import java.io.FileInputStream;
import java.math.BigInteger;
import java.security.MessageDigest;/*** 文件进行比较是否相同,只要用于图片的比较,其它文件也可以的* 比较的思路,首先比较两个文件大小是否相同,大小不相等肯定不是同一个文件* 然后再比较文件的md5值 ,md5值不相等的两个文件肯定也不是同一个文件* 用途:如做爬虫抓取图片,可以根据网址路径进行判断 ,但还是有网址路径不同,但图片内容是相同的,那就可以避免重复下载* 网址:https://www.wyxbc.com/html/epAAaAA6y8tx0jAAaAAzLuiBQpEAAaAA6Q==.html* @author wyxbc.com it技术博客网**/
public class ImgMD5 {public static void main(String[] args) {File file1 = new File("E:\\website\\mybook\\upload\\20181025\\fa72e3199c984920bb1cd33071eb8e9d.jpg");File file2 = new File("E:\\website\\mybook\\upload\\20181025\\11107feab8ec499c93441b53d302aed0.jpg");System.out.println("文件长度输出===>");System.out.println(file1.length());System.out.println(file2.length());System.out.println("文件md5输出===>");String str1 = getFileMD5(file1);String str2 = getFileMD5(file2);System.out.println(str1);System.out.println(str2);System.out.println(str1.compareTo(str2) == 0?"true":"false");}/*** 获取文件的md5值* @param file 文件* @return 返回文件的md5值字符串*/public static String getFileMD5(File file) {if (!file.isFile()) {return null;}MessageDigest digest = null;FileInputStream in = null;byte buffer[] = new byte[8192];int len;try {digest = MessageDigest.getInstance("MD5");in = new FileInputStream(file);while ((len = in.read(buffer)) != -1) {digest.update(buffer, 0, len);}BigInteger bigInt = new BigInteger(1, digest.digest());return bigInt.toString(16);} catch (Exception e) {e.printStackTrace();return null;} finally {try {in.close();} catch (Exception e) {e.printStackTrace();}}}
}

看按照这个思路,其实也可以用它语言实现文件的比较,欢迎大家提供其它语言的版本

怎样用java实现文件比较,判断是否是同一个文件相关推荐

  1. java多线程 文件夹_java多线程读同一个文件

    java多线程同时读取一个文件,这个方法可行吗?不可行. 多线程能够提高效率是因为现在的cpu普遍是多核cpu, 多条线程可以在多个内核中同时执行来提高计算效率.但是计算机磁盘的磁头只有一个,即使多条 ...

  2. php上传文件类型判断,PHP上传文件类型判断

    文件后缀名 文件类型 3gp video/3gpp aab application/x-authoware-bin aam application/x-authoware-map aas applic ...

  3. java中图片文件的判断

    javax.imageio 类 ImageIO BufferedImage bi = ImageIO.read(resFile);//resFile --- InputStreamif(bi == n ...

  4. 服务器文件描述,服务器编程中的文件描述符

    Linux系统下一切皆文件,通过虚拟文件系统(VFS)的机制将所有底层屏蔽掉,用户可以通过统一的接口来实现对不同驱动的操作,对于每一个文件需要一个引用来指示,此时文件描述符应用而生,文件描述符类似于W ...

  5. java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...

    我们经常会遇到读取文件内容的情况,就需要判断文件是否为文本文件,及文件编码格式,防止无法读取内容或乱码出现情况. 根据文件扩展名判定不太准确,可能会遇到未知扩展名或被修改了扩展名,下面的测试类使用文件 ...

  6. java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...

    本文主要向大家介绍了JAVA语言之如何判断文件,判断文件夹是否存在的代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 一.判断文件是否存在,不存在则创建File file = ne ...

  7. JAVA之旅(二十八)——File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤...

    JAVA之旅(二十八)--File概述,创建,删除,判断文件存在,创建文件夹,判断是否为文件/文件夹,获取信息,文件列表,文件过滤 我们可以继续了,今天说下File 一.File概述 文件的操作是非常 ...

  8. Java面试题(九)-----编写程序实现判断E: / 根目录下是否有后缀名为.jpg的文件,如果有则输出文件名称

    Java面试题(九)-----编写程序实现判断E: / 根目录下是否有后缀名为.jpg的文件,如果有则输出文件名称 文章目录

  9. java判断是否安装了pdf_java判断上传文件是否为pdf java图像上传中如何判断是否是jpg格式...

    java怎么判断有没有上传文件 Java平台如何判断用户上传的文件是否是图片不要辜负了自己受过的苦难,这样善良又努力的一个你,一定会得到曾梦寐以分享的所有美好. if(typeof FileReade ...

最新文章

  1. 北航计算机考博C语言真题_北京航空航天大学计算机考研:严厉的老父亲,教会你本事,本科非211以上就不要去了...
  2. java集合(List,Set,Map)详细总结
  3. 计算机组装的维修学测,《计算机组装与维修》课程学业水平测试卷(样卷答案).doc...
  4. Python: Json串反序列化为自定义类对象
  5. python中获取当前所有的logger
  6. 只靠自己的飞鸽传书想象和推断
  7. 相机标定基础【1】- 在Visual Station 2019 上搭建OpenCV应用 (1)- 安装配置VS
  8. python卡方检验关键词,特征选择——卡方检验(使用Python sklearn进行实现)
  9. LCD液晶显示的51单片机简单计算器
  10. 【Java从0到架构师】MyBatis - 连接池、分页_PageHelper
  11. 基于freemarker生成pdf
  12. 适合中小企业的协同办公软件一览
  13. flutter 里面读取和复制内容到手机剪切板
  14. 美团无人配送部总经理夏华夏演讲:从技术细节看美团架构
  15. windows开机老显示请选择要启动的操作系统
  16. 25岁从零开始学习平面设计会不会晚
  17. 成都市第五人民医院双活数据中心建设方案
  18. Outlook打开工享Calendar
  19. hdu 5145 NPY and girls (莫队算法)
  20. 推荐算法工程师面试准备

热门文章

  1. Android日志收集
  2. vue后台管理框架(vue+element)
  3. NVIDIA TX2 Ubuntu 18.04 无法打开SD卡/U盘的解决方法
  4. 公园智慧路灯网关组网方案
  5. AEC、AGC、ANS是什么意思
  6. Java考试案例-列出101至200之间的质数
  7. HP笔记本中CQ4x系列,在XP下的未知设备与声卡设备驱动
  8. java判断char是否相等
  9. html5自动打印图片,神奇照片自动打印软件
  10. 【mmsegmentation】bug解决:Error: [Errno 95] Operation not supported: ‘epoch_1.pth‘ -> ‘lastest.pth‘