zoukankan      html  css  js  c++  java
  • JAVA计算文件的crc32校验码

    import java.io.BufferedInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.zip.CRC32;
    import java.util.zip.CheckedInputStream;
    
    import org.junit.Test;
    
    public class CRCTest {
    
        @Test
        public void testFileCRC() {
            try {
                System.out.println(getCRC32("C:\software.xml"));
                System.out.println(checksumBufferedInputStream("C:\software.xml"));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    
        /**
         * 采用BufferedInputStream的方式加载文件
         */
        public static long checksumBufferedInputStream(String filepath) throws IOException {
            InputStream inputStream = new BufferedInputStream(new FileInputStream(filepath));
            CRC32 crc = new CRC32();
            byte[] bytes = new byte[1024];
            int cnt;
            while ((cnt = inputStream.read(bytes)) != -1) {
                crc.update(bytes, 0, cnt);
            }
            inputStream.close();
            return crc.getValue();
        }
    
        /**
         * 使用CheckedInputStream计算CRC
         */
        public static Long getCRC32(String filepath) throws IOException {
            CRC32 crc32 = new CRC32();
            FileInputStream fileinputstream = new FileInputStream(new File(filepath));
            CheckedInputStream checkedinputstream = new CheckedInputStream(fileinputstream, crc32);
            while (checkedinputstream.read() != -1) {
            }
            checkedinputstream.close();
            return crc32.getValue();
        }
    }

    注意如果要获取CRC32的getValues返回值的字符串,应该采用:  Long.toHexString(crc32.getValue())    方式返回字符串。

    原因如下:

  • 相关阅读:
    ASP.NET MVC中你必须知道的13个扩展点
    ASP.NET MVC扩展库
    AutoFac简介
    中小型研发团队架构实践十:应用监控怎么做?
    IDEA+Mybatis-generator代码生成工具
    IDEA+EasyCode实现代码生成
    myeclipse中导入的js文件报错(出现红叉叉,提示语法错误)
    Ibatis中常见错误解决方案
    注解
    structs常见错误
  • 原文地址:https://www.cnblogs.com/liaojie970/p/4872132.html
Copyright © 2011-2022 走看看