`

一个获取文件crc32校验码的简洁的java类

阅读更多

从jdk1.4开始,java核心包里已经提供对crc计算的支持。这里给出一个简单的例子,希望对你有所帮助。


import java.util.zip.CRC32;
import java.util.zip.CheckedInputStream;
import java.io.FileInputStream;
import java.io.File;

/**
 * 
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2003</p>
 * <p>Company: www.jagie.com</p>
 * @author Jaige
 * @version 1.0
 */
public class FileToCRCUtil {

    public static String getFileCRCCode(File file) throws Exception {
        
        FileInputStream fileinputstream = new FileInputStream(file);
        CRC32 crc32 = new CRC32();
        for (CheckedInputStream checkedinputstream =
            new CheckedInputStream(fileinputstream, crc32);
            checkedinputstream.read() != -1;
            ) {
        }
        return Long.toHexString(crc32.getValue());
        

    }

    public static void main(String[] args) throws Exception {
        
        File f=new File("c:\\YSFPCGL200311_237010400_JK.XML");
        System.err.println(getFileCRCCode(f));
        
      }

}

分享到:
评论

相关推荐

    Android开发中使用CRC校验

    CRC校验基于多项式除法,它将待校验的数据看作是二进制多项式的系数,然后用一个预定义的固定长度的多项式去除,得到的余数就是CRC校验码。在接收端,同样的过程会进行,如果余数不为零,则表明数据可能有误。 2. ...

    Java 生成校验码及校验码判断

    1. **CRC32**:Java标准库中的`java.util.zip.CRC32`类可以用来计算CRC32校验码。它是一个长整型变量,通过对输入数据的每一位进行累加计算,最后得到的值就是CRC32校验码。 ```java CRC32 crc32 = new CRC32(); ...

    获取文件CRC32值的类

    这个"获取文件CRC32值的类"应该是Java或类似的面向对象语言中的一个工具类,用于计算文件的CRC32校验值。此类可能包含以下功能: 1. **初始化方法**:类的构造函数可能接受文件路径作为参数,以便于初始化并准备...

    JAVA版CRC校验(网络版)

    在提供的压缩包中,`readme.txt`可能包含了关于如何使用CRC校验的说明,而`CRC`文件可能是一个示例代码或者已经计算好的CRC校验码。为了具体了解这些文件的内容,需要解压并查看其详细信息。在实际项目中,理解并...

    各种CRC生成工具,包括CRC8,CRC16,CRC-CCITT,CRC32

    标题提及了四种CRC类型:CRC8、CRC16、CRC-CCITT和CRC32,它们分别代表了不同宽度的CRC校验码: 1. **CRC8**:这是一种8位的CRC校验,适用于校验较短的数据块。它使用一个8位的生成多项式,计算过程相对简单,常...

    Android开发中使用CRC校验.rar

    首先创建`CRC32`实例,然后调用`update()`方法将数据逐字节或逐块传递给它,最后通过`getValue()`方法获取CRC校验码。 ```java CRC32 crcCalculator = new CRC32(); byte[] data = ... // 待校验的数据 ...

    java工具类java工具类java工具类

    接下来是CRC32速度优化工具类,CRC32(Cyclic Redundancy Check)也是一种校验码,常用于检测数据传输中的错误。优化版可能通过并行计算或位运算提高计算速度,对于大量数据的处理具有更高的效率。 XML工具类是处理...

    javazip压缩类

    8. **CRC32**: ZIP文件格式使用CRC32(Cyclic Redundancy Check)校验码来验证数据的完整性。在Java中,CRC32类可以计算一个数据流的CRC值,这对于验证ZIP条目是否损坏非常有用。 9. **压缩级别和方法**: 在创建...

    crc.zip_There There

    4. 将这个余数作为CRC校验码附加到原始数据的末尾,形成完整的数据包。 5. 接收方接收到数据后,同样使用生成多项式对数据进行模2除法,如果余数为零,则数据被认为无误;若有非零余数,则表示数据在传输或存储过程...

    JAVA开发JAVA局域网飞鸽传书软件设计与实现(源代码+论文)

    《JAVA开发JAVA局域网飞鸽传书软件设计与实现》是针对局域网内文件传输的软件项目,它利用Java编程语言进行开发,旨在提供一个高效、便捷的文件分享平台。本文将深入探讨该软件的设计理念、实现原理以及关键技术。 ...

    LinkLayerModelJAVA_java_

    标题“LinkLayerModelJAVA_java_”暗示我们正在讨论一个与Java编程相关的项目,可能是关于网络协议的Link Layer模型实现。这个项目的重点可能在于利用Java语言来构建或模拟数据链路层的功能,数据链路层是OSI(开放...

    以太帧的解析程序JAVA实现

    为了提高代码的可读性和复用性,可以将解析逻辑封装到一个类或多个类中,如`EthernetFrame`、`MACAddress`等。此外,还可以利用现有的网络协议库,如Apache Mina或Netty,它们提供了更高级别的抽象,可以简化网络...

    JAVA局域网飞鸽传书软件设计与实现(源代码+论文)【毕业论文】.zip

    2. 错误检测与恢复:通过校验码如CRC或MD5来检测数据完整性,确保文件无损传输。 3. 速度优化:使用合适的缓冲大小、并行传输策略等方法提升文件传输速率。 六、论文结构 该毕业论文可能涵盖了上述所有知识点,并...

    md5 哈希算法 数据完整性验证工具

    MD5(Message-Digest Algorithm 5)哈希算法是一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常以32个十六进制数字的形式表示。这种算法的主要用途是用于数据的完整性验证,确保数据在传输或存储...

    java增量更新打包工具

    2. **文件差异算法**:文章可能涉及了如CRC校验、MD5哈希对比、文件内容比对等方法来检测文件的改动。 3. **版本控制**:在Java环境中,可能涉及到Git或SVN等版本控制系统,用于跟踪代码的变化历史。 4. **构建...

    java通过com口采集读取modbus数据驱动程序

    在AcuRF这个文件中,很可能是包含了一个或多个实现上述功能的Java类或项目示例。你可以通过查看源代码学习如何在实际项目中整合Java串行通信和Modbus协议,包括如何设置串口参数(波特率、数据位、停止位、校验方式...

    Serialport接收并保存串口的数据

    它通过计算数据的多项式和预设的生成多项式进行异或运算,生成一个16位的校验码,用于检查数据在传输过程中的完整性。在本项目中,CRC16被用来验证串口通信数据的准确性。 3. **串口配置**:在进行串口通信前,需要...

    同一个文件在windows和linux下计算md5哈希不一致的原因及解决方法

    然而,有时在Windows和Linux系统下计算同一个文件的MD5哈希值可能会得到不一致的结果,这主要是由于文件处理方式和传输过程中的差异造成的。 1. **文件读取方式**: 在Windows和Linux系统中,文件读取方式的不同...

    基于Java多线程与线程安安全实践-基于Http协议的断点续传的毕业设计,通过分析用户的网络环境和网络状况,确定合适的分包大小

    本设计主要针对大型文件进行断点续传,通过分析用户的网络环境和网络状况,确定合适的分包大小,将大文件拆分为多个分包,每个分包包含包头和实际数据,包头中包含分包序号、分包大小和包尾CRC校验码。用户可以根据自己的...

    Android的zip解压缩

    在实际开发中,我们可能需要处理更复杂的情况,例如处理密码保护的zip文件、检查文件的CRC校验和以确保解压的正确性,或者处理嵌套的zip文件。此外,为了提高性能和用户体验,可以考虑使用线程池进行多线程解压。 ...

Global site tag (gtag.js) - Google Analytics