`
hehuangbing2010
  • 浏览: 1629 次
  • 性别: Icon_minigender_1
  • 来自: 邵阳
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java 文件内容对比

阅读更多
比较文件的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文件对比软件 java文件对比软件 java文件对比软件

    详解Java无需解压直接读取Zip文件和文件内容

    "Java读取Zip文件和文件内容" Java无需解压直接读取Zip文件和文件内容是Java语言中的一种常见操作,通过使用java.util.zip包中的ZipFile、ZipInputStream和ZipEntry类,我们可以轻松地读取Zip文件和文件内容。下面...

    java通过文件头内容判断文件类型

    本篇文章将深入探讨如何在Java中通过文件头内容来判断文件类型。 首先,了解文件头的基本概念。文件头是指文件开始的一段字节,不同的文件格式会有不同的文件头结构。例如,JPEG图像文件的开头通常是"FF D8 FF E0...

    Java文件对比工具

    Java文件对比工具作为专门针对Java源代码和其他文本文件进行差异分析的工具,它可以帮助开发者高效地找出两个文件之间的差异,从而提高工作效率。下面将详细介绍Java文件对比工具的功能、工作原理以及如何使用。 一...

    java比较文件_读取输出文件_正则表达式匹配

    比较2个文件的内容,输出不一样的部分 涉及到的重要知识点有: 1.java读取文件,输出文件 2.java正则表达式匹配* 2个文件内容是:中文 英文,然后分别比较中文部分和英文部分,文件内容如下: 520香烟 520...

    Java的文件比较工具

    内容概要: 这段代码是一个复杂的Java工具,名为 "FileComparator",用于比较两个文本文件的内容,找出差异并报告差异信息。 适用人群: 适用于需要在不同文本文件之间进行内容比较的程序员、开发人员、测试人员和...

    java实现两个word文件进行比较

    3. **比较内容**:遍历两个文档的段落,逐行比较文本。这里可能需要考虑字体、字号、颜色等格式信息,但基本的文本比较是最基础的步骤。 4. **标记差异**:当发现文本不一致时,可以创建一个新的Word文档,将原始...

    记录一下 Java 代码实现文件夹、文件的对比,主要包含 word、pdf、文本、图片等相关文件的对比计算,以及计算文本的相似率

    通过合理选择和组合这些工具,我们可以构建一个强大的文件对比系统,满足各种需求,包括文档去重、版本差异分析等。对于特定格式的文件(如Word、PDF),需要借助专门的库来解析内容,然后进行对比。最后,将所有...

    java读取文件内容

    根据给定文件的信息,我们可以总结出以下几个关键的Java知识点: ### 1. 文件操作 #### 1.1 文件读取 在Java中,文件读取是通过`java.io`包中的类来实现的。本例中用到了`BufferedReader`和`FileReader`。 - **...

    Swing JAVA 文件比较 工具

    Java文件比较工具是一种实用程序,它允许程序员或用户对比两个或多个文本文件或二进制文件的内容,找出它们之间的差异。这样的工具在软件开发、版本控制、代码审查以及数据比较等多个场景中非常有用。在Swing中开发...

    java文件路径获取

    ### Java 文件路径获取方法详解 #### 一、引言 在Java开发中,经常会遇到需要获取文件路径的情况,尤其是在处理配置文件、图片等资源时。本文将详细介绍Java中获取文件路径的各种方法及其应用场景,帮助开发者更好...

    java验证文件真实格式和编码格式工具类

    通过比较这些字节与已知文件类型的魔法数字,可以确定文件类型。例如,JPEG文件以`FF D8 FF E0`开始,PDF文件则以`%PDF-`开头。 2. **MIME类型检测**:另一种方式是使用MIME类型库,如Apache Tika库,它能解析多种...

    java文件对比软件 WinMerge

    WinMerge是一款强大的文本和文件比较工具,尤其在Java开发中,它被广泛用于代码的版本对比和合并。这款软件提供了一个直观的用户界面,支持Windows操作系统,并且有中文版,方便中国用户使用。以下是关于WinMerge的...

    java 分割文件 将大文件分割成小文件

    这个操作通常比较复杂,因为文件的生成日期并不总是作为文件内容的一部分,而是存储在文件系统的元数据中。通常,我们不会根据生成日期来分割文件内容,但我们可以按照时间间隔来分割文件,例如每天或每小时生成一个...

    java实现文件批量上传

    在Java开发中,文件批量上传是一项常见的功能,尤其在企业级应用中,用户可能需要上传大量数据或文件。本教程将介绍如何利用SWF(Simple Workflow)和EXT库来实现这一功能。SWF是一个用于创建富互联网应用程序的前端...

    JAVA流比较两个TXT文件数据

    当我们需要比较两个TXT文件的数据时,可以利用Java的流API来实现。下面将详细介绍如何利用JAVA流、FileReader和BufferedReader来实现这个功能。 首先,我们需要理解什么是JAVA流。在Java中,流是一组有序的数据序列...

    Java去重txt文件内容(按行)

    "Java去重txt文件内容(按行)"这个主题涉及到如何利用Java语言有效地读取TXT文件,并通过比较两份文件的内容来消除重复的行。在这个过程中,Java 8引入的新特性——流(Stream)和并行流(Parallel Stream)起到了关键...

    java 实现文件MD5 加密比较,防止上传重复文件

    这个类可以实现,java语言下通过对上传文件进行MD5加密,然后将加密值与原来上传的文件加密值进行对比,防止上传重复文件。

Global site tag (gtag.js) - Google Analytics