// ----------------------------------------------------------------------------- // ChecksumAdler32.java // ----------------------------------------------------------------------------- /* * ============================================================================= * Copyright (c) 1998-2011 Jeffrey M. Hunter. All rights reserved. * * All source code and material located at the Internet address of * http://www.idevelopment.info is the copyright of Jeffrey M. Hunter and * is protected under copyright laws of the United States. This source code may * not be hosted on any other site without my express, prior, written * permission. Application to host any of the material elsewhere can be made by * contacting me at jhunter@idevelopment.info. * * I have made every effort and taken great care in making sure that the source * code and other content included on my web site is technically accurate, but I * disclaim any and all responsibility for any loss, damage or destruction of * data or any other property which may arise from relying on it. I will in no * case be liable for any monetary damages arising from such loss, damage or * destruction. * * As with any code, ensure to test this code in a development environment * before attempting to run it in production. * ============================================================================= */ import java.util.zip.CheckedInputStream; import java.util.zip.Adler32; 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 Adler-32 checksum engine. * * @version 1.0 * @author Jeffrey M. Hunter (jhunter@idevelopment.info) * @author http://www.idevelopment.info * ----------------------------------------------------------------------------- */ public class ChecksumAdler32 { private static void doChecksum(String fileName) { try { CheckedInputStream cis = null; long fileSize = 0; try { // Computer Adler-32 checksum cis = new CheckedInputStream( new FileInputStream(fileName), new Adler32()); 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 ChecksumAdler32 filename"); } else { doChecksum(args[0]); } } }