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())    方式返回字符串。

    原因如下:

  • 相关阅读:
    NODE 开发 2-3年工作经验 掌握的相关知识
    react 问题
    vue 问题集合 |
    前端实用工具大全, 有任何棘手的实现, 可以来这里拿
    react 入门的好东西 可以做出一个完整的网站
    vue 问题集合
    js 预处理 与 执行 的顺序
    js_6_dom选择
    js_4_函数
    js_3_for_if_try
  • 原文地址:https://www.cnblogs.com/liaojie970/p/4872132.html
Copyright © 2011-2022 走看看