Here is a simple example to demonstrate how to generate a file checksum value in Java (SHA-1).

import java.io.FileInputStream;
import java.security.MessageDigest;
 
public class TestCheckSum {
 
  public static void main(String args[]) throws Exception {
 
    String datafile = "c:\\INSTLOG.TXT";
 
    MessageDigest md = MessageDigest.getInstance("SHA1");
    FileInputStream fis = new FileInputStream(datafile);
    byte[] dataBytes = new byte[1024];
 
    int nread = 0; 
 
    while ((nread = fis.read(dataBytes)) != -1) {
      md.update(dataBytes, 0, nread);
    };
    byte[] mdbytes = md.digest();
 
    //convert the byte to hex format
    StringBuffer sb = new StringBuffer("");
    for (int i = 0; i < mdbytes.length; i++) {
    	sb.append(Integer.toString((mdbytes[i] & 0xff) + 0x100, 16).substring(1));
    }
 
    System.out.println("Digest(in hex format):: " + sb.toString());
 
  }
}

Result

Digest(in hex format):: bf35fa420d3e0f669e27b337062bf19f510480d4

The “INSTLOG.TXT” file has a “bf35fa420d3e0f669e27b337062bf19f510480d4″ SHA-1 checksum value. If we want to generate a Checksum value in MD5 format , we can change the MessageDigest as following

MessageDigest md = MessageDigest.getInstance("MD5");

More detail about Message Digest Algorithms, please check following website
http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html#AppA

Reference

1) http://www.itl.nist.gov/fipspubs/fip180-1.htm
2) http://java.sun.com/j2se/1.4.2/docs/api/java/security/MessageDigest.html
3) http://java.sun.com/j2se/1.4.2/docs/guide/security/CryptoSpec.html