利用java内存映射文件机制实现CRC循环冗余校验
2010-05-08 12:36
711 查看
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.util.zip.CRC32;
public static void main(String[] args){
try { //对
import java.nio.channels.FileChannel;
import java.util.zip.CRC32;
public static void main(String[] args){
try { //对
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(); } } 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 运行16ms |
相关文章推荐
- 利用java内存映射文件机制实现CRC循环冗余校验
- 利用java类的反射机制,实现了 映射 获得post(get)的参数 的BaseServlet
- C/C++(5)实现大数据文件的内存映射机制
- Java NIO 内存映射文件实现进程间通信
- windows下利用文件映射实现共享内存
- windows下利用文件映射实现共享内存
- 利用JAVA/JSF/JSP实现读取并截取.txt文件http://zhidao.baidu.com/question/42189115.html
- 利用Java的反射机制实现Bean实体与Map自动转换的工具类
- Java-NIO(五):通道(Channel)的数据传输与内存映射文件
- 用文件映射(File Mapping)实现进程间内存共享
- 利用内存映射文件在两个进程间共享数据 转
- 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
- Java-NIO(五):通道(Channel)的数据传输与内存映射文件
- 用文件映射(File Mapping)实现进程间内存共享
- java内存映射文件
- 内存映射文件-java读取超大文件
- Java利用SFTP实现文件上传与下载
- windows 内存映射文件实现数据共享之原理
- JAVA NIO FileChannel 内存映射文件
- 利用内存映射文件处理大文件