从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));
}
}
分享到:
相关推荐
CRC校验基于多项式除法,它将待校验的数据看作是二进制多项式的系数,然后用一个预定义的固定长度的多项式去除,得到的余数就是CRC校验码。在接收端,同样的过程会进行,如果余数不为零,则表明数据可能有误。 2. ...
1. **CRC32**:Java标准库中的`java.util.zip.CRC32`类可以用来计算CRC32校验码。它是一个长整型变量,通过对输入数据的每一位进行累加计算,最后得到的值就是CRC32校验码。 ```java CRC32 crc32 = new CRC32(); ...
这个"获取文件CRC32值的类"应该是Java或类似的面向对象语言中的一个工具类,用于计算文件的CRC32校验值。此类可能包含以下功能: 1. **初始化方法**:类的构造函数可能接受文件路径作为参数,以便于初始化并准备...
在提供的压缩包中,`readme.txt`可能包含了关于如何使用CRC校验的说明,而`CRC`文件可能是一个示例代码或者已经计算好的CRC校验码。为了具体了解这些文件的内容,需要解压并查看其详细信息。在实际项目中,理解并...
标题提及了四种CRC类型:CRC8、CRC16、CRC-CCITT和CRC32,它们分别代表了不同宽度的CRC校验码: 1. **CRC8**:这是一种8位的CRC校验,适用于校验较短的数据块。它使用一个8位的生成多项式,计算过程相对简单,常...
首先创建`CRC32`实例,然后调用`update()`方法将数据逐字节或逐块传递给它,最后通过`getValue()`方法获取CRC校验码。 ```java CRC32 crcCalculator = new CRC32(); byte[] data = ... // 待校验的数据 ...
接下来是CRC32速度优化工具类,CRC32(Cyclic Redundancy Check)也是一种校验码,常用于检测数据传输中的错误。优化版可能通过并行计算或位运算提高计算速度,对于大量数据的处理具有更高的效率。 XML工具类是处理...
8. **CRC32**: ZIP文件格式使用CRC32(Cyclic Redundancy Check)校验码来验证数据的完整性。在Java中,CRC32类可以计算一个数据流的CRC值,这对于验证ZIP条目是否损坏非常有用。 9. **压缩级别和方法**: 在创建...
4. 将这个余数作为CRC校验码附加到原始数据的末尾,形成完整的数据包。 5. 接收方接收到数据后,同样使用生成多项式对数据进行模2除法,如果余数为零,则数据被认为无误;若有非零余数,则表示数据在传输或存储过程...
《JAVA开发JAVA局域网飞鸽传书软件设计与实现》是针对局域网内文件传输的软件项目,它利用Java编程语言进行开发,旨在提供一个高效、便捷的文件分享平台。本文将深入探讨该软件的设计理念、实现原理以及关键技术。 ...
标题“LinkLayerModelJAVA_java_”暗示我们正在讨论一个与Java编程相关的项目,可能是关于网络协议的Link Layer模型实现。这个项目的重点可能在于利用Java语言来构建或模拟数据链路层的功能,数据链路层是OSI(开放...
为了提高代码的可读性和复用性,可以将解析逻辑封装到一个类或多个类中,如`EthernetFrame`、`MACAddress`等。此外,还可以利用现有的网络协议库,如Apache Mina或Netty,它们提供了更高级别的抽象,可以简化网络...
2. 错误检测与恢复:通过校验码如CRC或MD5来检测数据完整性,确保文件无损传输。 3. 速度优化:使用合适的缓冲大小、并行传输策略等方法提升文件传输速率。 六、论文结构 该毕业论文可能涵盖了上述所有知识点,并...
MD5(Message-Digest Algorithm 5)哈希算法是一种广泛使用的加密散列函数,产生一个128位(16字节)的散列值,通常以32个十六进制数字的形式表示。这种算法的主要用途是用于数据的完整性验证,确保数据在传输或存储...
2. **文件差异算法**:文章可能涉及了如CRC校验、MD5哈希对比、文件内容比对等方法来检测文件的改动。 3. **版本控制**:在Java环境中,可能涉及到Git或SVN等版本控制系统,用于跟踪代码的变化历史。 4. **构建...
在AcuRF这个文件中,很可能是包含了一个或多个实现上述功能的Java类或项目示例。你可以通过查看源代码学习如何在实际项目中整合Java串行通信和Modbus协议,包括如何设置串口参数(波特率、数据位、停止位、校验方式...
它通过计算数据的多项式和预设的生成多项式进行异或运算,生成一个16位的校验码,用于检查数据在传输过程中的完整性。在本项目中,CRC16被用来验证串口通信数据的准确性。 3. **串口配置**:在进行串口通信前,需要...
然而,有时在Windows和Linux系统下计算同一个文件的MD5哈希值可能会得到不一致的结果,这主要是由于文件处理方式和传输过程中的差异造成的。 1. **文件读取方式**: 在Windows和Linux系统中,文件读取方式的不同...
本设计主要针对大型文件进行断点续传,通过分析用户的网络环境和网络状况,确定合适的分包大小,将大文件拆分为多个分包,每个分包包含包头和实际数据,包头中包含分包序号、分包大小和包尾CRC校验码。用户可以根据自己的...
在实际开发中,我们可能需要处理更复杂的情况,例如处理密码保护的zip文件、检查文件的CRC校验和以确保解压的正确性,或者处理嵌套的zip文件。此外,为了提高性能和用户体验,可以考虑使用线程池进行多线程解压。 ...