java 如何检查两个图片是否一致, 其实也可以检查其他类型的文件了
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 {
/**
* 获取单个文件的MD5值!
* @param file
* @return
*/
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);
}
/**
* 获取文件夹中文件的MD5值
* @param file
* @param listChild ;true递归子目录中的文件
* @return
*/
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;
}
public static void main(String[] args) {
File file1 = new File("a.txt");
File file2 = new File("b.txt");
System.out.println(getFileMD5(file1).equals(getFileMD5(file2)));
}
}
分享到:
相关推荐
在Java中进行图像识别,尤其是判断两张图片是否相似,是一个涉及计算机视觉和图像处理的复杂任务。本话题将深入探讨如何使用Java实现这一功能。在实际应用中,图像相似度判断广泛应用于图像检索、内容识别、人脸识别...
本项目“java将word转图片转pdf_jacob.zip”是关于利用Java进行文档格式转换的一个实例,主要涉及的技术点包括Java与Microsoft Office文档的交互以及图片和PDF的生成。 首先,我们需要了解Java中的Jacob库。Jacob...
在Java编程环境中,将两个TIFF(Tagged Image File Format)图像或普通图像合并成一个单一的TIFF或图像文件,需要对图像处理有深入的理解,特别是关于图像格式、颜色模型以及位深度的知识。以下是一些相关的技术要点...
这两个Java类可能是实现图片防篡改功能的核心代码。`ImageHelper`可能包含对图片进行哈希计算的主要逻辑,包括读取图片、预处理、计算哈希值等功能。而`ImageUtil`可能是通用的图片处理工具类,包含如图片转换、...
在Java编程环境中,实现两个Word文档的比较是一项常见的任务,特别是在文档处理或自动化测试的场景中。本篇文章将深入探讨如何使用Java技术有效地完成这个任务,重点在于理解文档的结构、选择合适的库以及如何标记...
它的两个参数`imagePath1`和`imagePath2`分别代表待比较的两张图片的路径。由于提到可以支持中文路径,这意味着在处理文件路径时,已经考虑到了中文字符的编码问题,这通常涉及到Java中的`URLEncoder`或`Charset`类...
总的来说,Java中实现PDF转图片需要理解PDF文档的结构,以及如何利用FontBox和PDFBox这两个库来处理字体和页面内容。这两个库强大且灵活,能够帮助开发者实现各种复杂的PDF操作,包括将PDF文档转换为高质量的图像。...
总结起来,使用Java和OpenCV进行图片对比及差异标记涉及到图像读取、像素级比较、阈值处理、颜色标记等多个环节。通过理解这些基本概念和技术,你可以创建自己的图像比较工具,适用于各种场景,例如监控系统中的异常...
在描述中提到的“java代码编写”,暗示了我们可能会用到Apache POI库,这是一个用于读写Microsoft Office格式文件的开源Java API。Apache POI提供了HPSF(Hierarchical Property Set Format)和HWPF(Horrible Word ...
在这个案例中,可能`ThreadDownload.java`和`DownLoadUtil.java`分别代表了这两个概念的应用。 `ThreadDownload.java`可能是定义了一个新的线程类,继承自`Thread`。类中重写了`run()`方法,这是线程执行的主要逻辑...
它包含两个主要的组件:一个工具类(ImgUtils.java)和一个测试类(Test.java)。让我们深入探讨这两个类及其背后的图像处理原理。 首先,`ImgUtils.java`是核心工具类,它通常包含了一系列静态方法,用于执行图像...
在Java编程中,字节流(Byte Stream)是处理数据的基本方式,特别是在处理二进制数据,如图片、音频或视频文件时。本教程将详细讲解如何使用Java实现字节流与图片之间的转换,这对于在网络上传输或者存储图片等二...
这个项目的核心是通过比较两张图片上的特定特征点来判断它们是否相似或相同。 1. **图片匹配**:在计算机视觉中,图片匹配是一个关键任务,它涉及到识别和比较两张图片中的相似或相同的区域。在这个案例中,源代码...
总的来说,JAVA将PDF转换为OFD涉及到PDF解析、OFD生成等多个技术环节,需要对两种格式的特性有深入理解,并合理选择和使用相应的开发工具。随着国产化趋势的推进,这类技术的掌握对于提升国内软件的竞争力具有重要...
描述中提到的“java实现了word模板替换内容,转将新的word转成pdf文件”,这表明该压缩包提供的代码或工具集成了两个主要功能:一是Word模板的内容替换,二是Word到PDF的转换。在Java中,这通常涉及到使用特定的库或...
3. 像素点比较:遍历屏幕截图的每个像素点,根据目标图片的尺寸计算出对应的位置,然后比较这两个像素点的RGB值。 4. 使用异或操作(`^`)来判断RGB值是否相等,如果异或结果为0,说明RGB值相同。这种方法通常比直接...
本示例"java生成pdf,再把pdf转成图片的demo.rar"提供了Java编程语言实现这两个功能的演示代码。下面将详细介绍这个过程涉及的关键知识点。 1. **Java生成PDF**: - **iText库**:Java中常用的一个开源库iText,...
其中Y代表亮度,I和Q分别代表色度的两个分量。 4. **HSI颜色空间**:也称为HSV颜色空间,是一种基于人类视觉系统的颜色空间。H代表色调(Hue),S代表饱和度(Saturation),I或V代表明度(Intensity或Value)。 5...
这两个库都可以用来生成新的PDF文件。在这个场景下,我们可能需要使用其中一个库来构建Word内容的PDF表示。 3. **转换过程**: - 使用Apache POI读取Word文档的内容,包括文本、样式、图片等。 - 创建一个新的PDF...
在给定的代码中,开发者尝试从源路径`"d:\\java\\1.jpg"`读取一个图片文件,并将其复制到目标路径`"d:\\2.jpg"`。这是通过创建字节数组`buf`来缓存读取的数据,并使用`read()`和`write()`方法来完成的。 ### 问题...