zip

Calculate CRC-32 checksum of zip entry

With this example we are going to demonstrate how to calculate the CRC-32 checksum of a ZipEntry. In short, to calculate the CRC-32 checksum of a ZipEntry you should:

  • Create a new ZipFile and open it for reading.
  • Get the Enumeration of the ZipFile entries, with entries() API method of ZipFile and iterate through each one of them.
  • For each one of the entries get the long CRC-32 checksum of the uncompressed entry, using getCrc() API method of ZipEntry.
  • Close the ZipFile, with close() API method of ZipFile.

Let’s take a look at the code snippet that follows:

package com.javacodegeeks.snippets.core;

import java.io.IOException;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;

public class CalculateCRC32ChecksumOfZipEntry {

	public static void main(String[] args) {

		ZipFile zipFile = null;

		try {

			// open a zip file for reading
			zipFile = new ZipFile("c:/archive.zip");

			// get an enumeration of the ZIP file entries
			Enumeration<? extends ZipEntry> e = zipFile.entries();

			while (e.hasMoreElements()) {

				ZipEntry entry = e.nextElement();

				// get the name of the entry
				String entryName = entry.getName();

				// get the CRC-32 checksum of the uncompressed entry data, or -1 if not known
				long crc = entry.getCrc();

				System.out.println(entryName + " with CRC-32: " + crc);

			}

		}
		catch (IOException ioe) {
			System.out.println("Error opening zip file" + ioe);
		}
		 finally {
			 try {
				 if (zipFile!=null) {
					 zipFile.close();
				 }
			 }
			 catch (IOException ioe) {
					System.out.println("Error while closing zip file" + ioe);
			 }
		 }

	}

}

 
This was an example of how to calculate the CRC-32 checksum of a ZipEntry in Java.

Byron Kiourtzoglou

Byron is a master software engineer working in the IT and Telecom domains. He is an applications developer in a wide variety of applications/services. He is currently acting as the team leader and technical architect for a proprietary service creation and integration platform for both the IT and Telecom industries in addition to a in-house big data real-time analytics solution. He is always fascinated by SOA, middleware services and mobile development. Byron is co-founder and Executive Editor at Java Code Geeks.
Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments
Back to top button