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

    原因如下:

  • 相关阅读:
    vue中实现后台管理路由标签页
    vue实现侧边导航栏
    node学习(-)
    javascript面试题(二)
    尾递归(简要)
    javascript面试题(一)
    Windows平台基于RTMP实现一对一互动直播
    如何实现RTMP推送Android Camera2数据
    Windows平台RTMP/RTSP直播推送模块设计和使用说明
    如何设计一款跨平台低延迟的RTMP/RTSP直播播放器
  • 原文地址:https://www.cnblogs.com/liaojie970/p/4872132.html
Copyright © 2011-2022 走看看