Mega Code Archive

 
Categories / Java / File Input Output
 

Determine whether a file is a JAR File

import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.zip.ZipFile; public class Main {   /**    * Determine whether a file is a JAR File.    */   public static boolean isJarFile(File file) throws IOException {     if (!isZipFile(file)) {       return false;     }     ZipFile zip = new ZipFile(file);     boolean manifest = zip.getEntry("META-INF/MANIFEST.MF") != null;     zip.close();     return manifest;   }   /**    * Determine whether a file is a ZIP File.    */   public static boolean isZipFile(File file) throws IOException {       if(file.isDirectory()) {           return false;       }       if(!file.canRead()) {           throw new IOException("Cannot read file "+file.getAbsolutePath());       }       if(file.length() < 4) {           return false;       }       DataInputStream in = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));       int test = in.readInt();       in.close();       return test == 0x504b0304;   } }