Java 对文件进行 CRC32 校验详解编程语言

import java.util.zip.CheckedInputStream; 
import java.util.zip.CRC32; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.IOException; 
 
/** 
 * ----------------------------------------------------------------------------- 
 * Used to provide an example of how to calculate the checksum of a file using 
 * the CRC-32 checksum engine. 
 * 
 * @version 1.0 
 * @author  Jeffrey M. Hunter  ([email protected]) 
 * @author  <a href="http://www.idevelopment.info">http://www.idevelopment.info 
 * ----------------------------------------------------------------------------- 
 */ 
 
public class ChecksumCRC32 { 
 
    private static void doChecksum(String fileName) { 
 
        try { 
 
            CheckedInputStream cis = null; 
            long fileSize = 0; 
            try { 
                // Computer CRC32 checksum 
                cis = new CheckedInputStream( 
                        new FileInputStream(fileName), new CRC32()); 
 
                fileSize = new File(fileName).length(); 
                 
            } catch (FileNotFoundException e) { 
                System.err.println("File not found."); 
                System.exit(1); 
            } 
 
            byte[] buf = new byte[128]; 
            while(cis.read(buf) >= 0) { 
            } 
 
            long checksum = cis.getChecksum().getValue(); 
            System.out.println(checksum + " " + fileSize + " " + fileName); 
 
        } catch (IOException e) { 
            e.printStackTrace(); 
            System.exit(1); 
        } 
 
 
    } 
 
 
    /** 
     * Sole entry point to the class and application. 
     * @param args Array of String arguments. 
     */ 
    public static void main(String[] args) { 
 
        if (args.length != 1) { 
            System.err.println("Usage: java ChecksumCRC32 filename"); 
        } else { 
            doChecksum(args[0]); 
        } 
 
    } 
 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10898.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论