比较文件的MD5即可
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文件对比软件 java文件对比软件 java文件对比软件
"Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...
本篇文章将深入探讨如何在Java中通过文件头内容来判断文件类型。 首先,了解文件头的基本概念。文件头是指文件开始的一段字节,不同的文件格式会有不同的文件头结构。例如,JPEG图像文件的开头通常是"FF D8 FF E0...
Java文件对比工具作为专门针对Java源代码和其他文本文件进行差异分析的工具,它可以帮助开发者高效地找出两个文件之间的差异,从而提高工作效率。下面将详细介绍Java文件对比工具的功能、工作原理以及如何使用。 一...
比较2个文件的内容,输出不一样的部分 涉及到的重要知识点有: 1.java读取文件,输出文件 2.java正则表达式匹配* 2个文件内容是:中文 英文,然后分别比较中文部分和英文部分,文件内容如下: 520香烟 520...
内容概要: 这段代码是一个复杂的Java工具,名为 "FileComparator",用于比较两个文本文件的内容,找出差异并报告差异信息。 适用人群: 适用于需要在不同文本文件之间进行内容比较的程序员、开发人员、测试人员和...
3. **比较内容**:遍历两个文档的段落,逐行比较文本。这里可能需要考虑字体、字号、颜色等格式信息,但基本的文本比较是最基础的步骤。 4. **标记差异**:当发现文本不一致时,可以创建一个新的Word文档,将原始...
通过合理选择和组合这些工具,我们可以构建一个强大的文件对比系统,满足各种需求,包括文档去重、版本差异分析等。对于特定格式的文件(如Word、PDF),需要借助专门的库来解析内容,然后进行对比。最后,将所有...
根据给定文件的信息,我们可以总结出以下几个关键的Java知识点: ### 1. 文件操作 #### 1.1 文件读取 在Java中,文件读取是通过`java.io`包中的类来实现的。本例中用到了`BufferedReader`和`FileReader`。 - **...
Java文件比较工具是一种实用程序,它允许程序员或用户对比两个或多个文本文件或二进制文件的内容,找出它们之间的差异。这样的工具在软件开发、版本控制、代码审查以及数据比较等多个场景中非常有用。在Swing中开发...
### Java 文件路径获取方法详解 #### 一、引言 在Java开发中,经常会遇到需要获取文件路径的情况,尤其是在处理配置文件、图片等资源时。本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好...
通过比较这些字节与已知文件类型的魔法数字,可以确定文件类型。例如,JPEG文件以`FF D8 FF E0`开始,PDF文件则以`%PDF-`开头。 2. **MIME类型检测**:另一种方式是使用MIME类型库,如Apache Tika库,它能解析多种...
WinMerge是一款强大的文本和文件比较工具,尤其在Java开发中,它被广泛用于代码的版本对比和合并。这款软件提供了一个直观的用户界面,支持Windows操作系统,并且有中文版,方便中国用户使用。以下是关于WinMerge的...
这个操作通常比较复杂,因为文件的生成日期并不总是作为文件内容的一部分,而是存储在文件系统的元数据中。通常,我们不会根据生成日期来分割文件内容,但我们可以按照时间间隔来分割文件,例如每天或每小时生成一个...
在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...
当我们需要比较两个TXT文件的数据时,可以利用Java的流API来实现。下面将详细介绍如何利用JAVA流、FileReader和BufferedReader来实现这个功能。 首先,我们需要理解什么是JAVA流。在Java中,流是一组有序的数据序列...
"Java去重txt文件内容(按行)"这个主题涉及到如何利用Java语言有效地读取TXT文件,并通过比较两份文件的内容来消除重复的行。在这个过程中,Java 8引入的新特性——流(Stream)和并行流(Parallel Stream)起到了关键...
这个类可以实现,java语言下通过对上传文件进行MD5加密,然后将加密值与原来上传的文件加密值进行对比,防止上传重复文件。