import java.nio.MappedByteBuffer; import java.nio.channels.FileChannel; import java.util.zip.CRC32; public static void main(String[] args){ try { //对文件进行crc校验 long begin = System.currentTimeMillis(); FileInputStream in = new FileInputStream("code.py");//指定目标文件 FileChannel channel = in.getChannel(); //从文件中获取一个通道 CRC32 crc = new CRC32(); int length = (int)channel.size(); MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, length); //用只读模式从该通道获取字节缓冲,实现文件到内存的映射 for(int i = 0;i<length;i++) { int c = buffer.get(i); crc.update(c);//按字节做crc } System.out.println("crc校验和:"+(Long.toHexString(crc.getValue())).toUpperCase()); long end = System.currentTimeMillis(); System.out.println("运行"+(end-begin)+"ms"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
运行结果:
crc校验和:4831ACAC
java自1.4以后io机制里多了一个nio包(new I/O),这个包的存在改进了java IO 操作的机制,包括 字符集编码、解码器,非阻塞的I/O,内存映射文件,文件加锁机制,内存映射文件机制类似于操作系统的虚拟内存,它实现了文件到内存的映射,执行效率介于普通文件操作和内存操作之间,适合大文件的读取,和计算.
使用方法很简单:
从文件输入流获取一个‘channel’即通道 传给一个FileChannel
用FileChannel的map方法实现一个文件到内存MappedByteBuffer的字节映射
这样一个从文件到内存的映射机制就建立起来了,接下来就是你要做的内存操作
发表评论
-
java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
2011-08-19 17:01 2503Exception in thread "main& ... -
打jar包
2011-05-26 18:35 1027打成jar包: 1、没有其他类库jar文件和插件 ... -
Java实现通用线程池
2011-05-05 23:11 1050线程池通俗的描述就是预先创建若干空闲线程,等到需要用多线程去处 ... -
Java tutorial
2011-05-05 21:49 1016http://download.oracle.com/java ... -
java.awt.component.repaint()
2011-05-05 18:57 1039repaint public void repaint()R ... -
validate
2011-05-05 17:21 744validate public void validate( ... -
Class.forName和New的比较
2011-04-26 14:46 705在初始化一个类,生成一个实例的时候,newInstance() ... -
Responding to Window-Closing Events
2011-04-26 03:00 772By default, when the user close ... -
Map、Collection、List接口的总结
2011-04-26 02:52 841Map接口: | + -- ... -
复杂的GridBagLayout
2011-02-07 16:06 1041今天终于耐着性子弄懂了GridBagLayout是怎么使用的。 ... -
swing中的布局管理器
2011-02-07 15:42 14444.CardLayout CardL ... -
swing中的最上层组件
2011-02-07 15:05 2746swing中几乎所有组件都是从JComponent衍生而来,也 ... -
Java swing 组件分层介绍:JRootPane,GlassPane,LayeredPane
2011-02-06 17:01 3052什么是Swing,什么又是ligh ... -
JTextArea操作
2011-01-11 18:03 1242JTextArea操作: (1)在JTextArea插入 ... -
double到int转换
2010-12-16 23:28 847double到int转换,有“截断”误差的。 可以通过+0.5 ... -
各种排序算法java实现
2010-11-25 15:20 594package org.rut.util.algorith ... -
Java中使用BigDecimal进行浮点数高精度计算
2010-11-25 15:18 807转自:http://chongtianpig.netbei.c ... -
java中进行二进制,八进制,十六进制,十进制间进行相互转换
2010-11-19 13:48 647十进制转成十六进制: Integer.toHexString ... -
JScrollPane 例解
2010-11-19 01:49 1531类层次结构图: java.lang.Object -- ... -
JTextField JTextArea 区分
2010-11-19 01:14 1517一、单行文本输入框(JTextField) 在许多情况下 ...
相关推荐
循环冗余校验码(CRC,Cyclic Redundancy Check)是一种广泛应用于数据通信和存储领域的错误检测技术。它的基本原理是通过附加一个校验位序列到原始数据中,使得整个数据块能被一个特定的多项式除尽。在接收端,同样...
在本篇论文中,研究者们针对水声信号探测数据传输过程中,现场可编程门阵列(FPGA)进行循环冗余校验(CRC)的课题,提出了一个创新性的方法。该方法旨在解决传统串行方法在处理长数据帧时速度不足的问题,同时克服...
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测方法。在编程中,CRC32常用于校验数据的完整性和一致性,确保程序在运行时能够正确执行。下面我们将深入探讨CRC32的...
### 循环冗余检验(CRC)原理与实现 #### 1. 前言 ##### 1.1 背景 循环冗余检验(Cyclic Redundancy Check,简称CRC)是一种广泛应用于通信领域中的差错检测技术。CRC通过对发送的数据进行计算并附加一个校验值...
总结起来,CRC8、CRC16和CRC32是三种不同宽度的循环冗余校验方法,它们通过查表法在C语言中实现,可以高效地检测数据传输或存储中的错误。CRC8适用于轻量级应用,CRC16提供更强的保护,而CRC32则广泛应用于高可靠性...
循环冗余校验(CRC,一种纠错码)的软件和硬件实现。 可以为任何指定的CRC生成器多项式自动生成硬件描述语言。一个循环校验码(一种ecc错误校验码)的软件和硬件实现软件实施 由于强大的矩阵计算功能和GUI功能,我...
它通过计算数据的循环冗余校验值来判断数据是否在传输或存储过程中出现错误。CRC32算法基于多项式除法原理,通常使用一个固定的32位多项式,对数据进行除法运算,得到的余数即为CRC校验码。 在C++中实现CRC32,通常...
dsPIC33E/PIC24E 系列参考手册第 27 章 - 32 位可编程循环冗余校验(CRC) 本章概述了 dsPIC33E/PIC24E 系列微控制器中的 32 位可编程循环冗余校验(Cyclic Redundancy Check,CRC)模块。CRC 模块是一种软件可配置...
CRC校验,即循环冗余校验(Cyclic Redundancy Check),是一种用于检测数据传输或存储时可能出现的错误的校验码算法。CRC校验可以用于保证数据的完整性,广泛应用于数据通信、存储设备和计算机网络中。在本文档中,...
CRC(Cyclic Redundancy Check)循环冗余校验和MD5(Message-Digest Algorithm 5)是两种广泛应用于数据完整性检查的算法。通过这些算法可以验证文件或数据是否被篡改或损坏。 #### CRC算法详解 CRC是一种用于检测...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛用于数据传输错误检测的校验码技术。CRC7和CRC8是两种不同宽度的CRC校验,它们在嵌入式系统、通信协议和存储设备中都有应用。标题中的"CRC7_code_v1_crc7...
CRC(循环冗余校验)是一种错误检测方法,通过对数据进行数学运算生成一个校验码,然后接收方再次计算这个校验码并与发送方提供的校验码进行比较,如果两者不同,就表明数据在传输过程中可能出现了错误。在MODBUS...
CRC,全称是Cyclic Redundancy Check,中文名为循环冗余校验,是一种广泛用于数据传输和存储中检测错误的校验技术。在ASM++中实现CRC算法,通常是为了提高程序的效率和可靠性,特别是在嵌入式系统或低级编程中。 ...
CRC(Cyclic Redundancy Check,循环冗余校验)是一种常用的错误检测方法,用于确保数据在传输过程中的完整性。在I2C通信中,CRC可以防止由于噪声或干扰导致的数据错误。 BQ76940是一款高级电池管理IC,适用于锂...
本文将详细介绍C语言实现的四种常见校验加密算法:CRC(循环冗余校验)、BASE64编码、MD5(消息摘要算法5)以及SHA512(安全哈希算法512位)。这些算法广泛应用于数据完整性验证、信息传输安全和存储安全性等方面。 ...
CRC32(Cyclic Redundancy Check,循环冗余校验)是一种广泛应用于数据通信和存储领域的错误检测码,主要用于检查数据传输或存储时的错误。它的核心思想是通过一个预定义的多项式来计算数据的校验和,然后将这个校验...
在Modbus-RTU协议中,为了确保数据在传输过程中的完整性和准确性,会使用一种错误检测机制——循环冗余校验(CRC,Cyclic Redundancy Check)。CRC16是CRC校验中常用的一种算法,用于检查数据帧的完整性。 **CRC16...
校验和通常基于循环冗余校验(CRC)算法或更复杂的哈希函数,如MD5或SHA系列。 3. 计算完成后,函数将返回校验和。如果这个校验和与之前记录的原始校验和相同,那么我们可以认为文件未被修改;反之,则可能存在问题...
校验和的计算通常基于特定的算法,如CRC(循环冗余校验)、MD5(Message-Digest Algorithm 5)、SHA-1(安全哈希算法1)或SHA-256等。这些算法通过将文件内容转化为固定长度的唯一数字摘要,即使文件内容有微小的...
在8051微控制器编程中,CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛使用的错误检测方法,用于确保数据在传输或存储过程中的完整性。CRC可以检测出二进制数据流中的大多数单比特错误以及一些多比特错误...