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;

class AdlerCheckSum {
	public static void main(String[] args) {
		try {
			String fileName = "testfile.txt";
			FileInputStream inputStream = new FileInputStream(fileName);
			Adler32 adlerChecksum = new Adler32();
			File file = new File(fileName);
			long firstValue = adlerChecksum.getValue();
			System.out.println("value of Adler32 checkSum :" + firstValue);
			CheckedInputStream cinStream = new CheckedInputStream(inputStream,
					adlerChecksum);
			long fileSize = file.length();
			byte[] b = new byte[128];
			while (cinStream.read(b) >= 0) {
			}
			long checksum = cinStream.getChecksum().getValue();
			System.out.println("Name of file : " + fileName);
			System.out
			.println("value of Adler32 checkSum after reading a file :"
					+ checksum);
			adlerChecksum.reset();
			long resetValue = adlerChecksum.getValue();
			System.out.println("value of Adler32 CheckSum After reseting :"
					+ resetValue);
		} catch (IOException e) {
			System.out.println("IOException : " + e);
		}
	}
}
