File Input Output Java

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class Utils {
  public static void unzip(File srcFile, File destDir) throws IOException {
    InputStream input = null;
    OutputStream output = null;
    ZipFile zipfile = new ZipFile(srcFile);
    Enumeration zipEntries = zipfile.entries();
    while (zipEntries.hasMoreElements()) {
      ZipEntry entry = (ZipEntry) zipEntries.nextElement();
      if (entry.isDirectory()) {
        new File(destDir, entry.getName()).mkdir();
        continue;
      }
      input = new BufferedInputStream(zipfile.getInputStream(entry));
      File destFile = new File(destDir, entry.getName());
      FileOutputStream fos = new FileOutputStream(destFile);
      output = new BufferedOutputStream(fos);
      copyStreams(input, output);
      input.close();
      output.flush();
      output.close();
    }
  }
  private static void copyStreams(InputStream input, OutputStream output) throws IOException {
    int count;
    byte data[] = new byte[1024];
    while ((count = input.read(data, 0, 1024)) != -1) {
      output.write(data, 0, count);
    }
  }
}