Dal forum della sun:
codice:import java.io.*; import java.util.*; import java.util.zip.*; public class Zipping { public static ArrayList unzip(InputStream inputStream, String destinationDir) throws IOException { ArrayList result = null; final int BUFFER = 2048; if (inputStream != null && destinationDir != null) { result = new ArrayList(); ZipInputStream zis = null; BufferedOutputStream bos = null; try { zis = new ZipInputStream(new BufferedInputStream(inputStream)); ZipEntry entry = null; while((entry = zis.getNextEntry()) != null) { //for each zip entry if (entry.isDirectory()) { //directory File dir = new File(destinationDir + File.separator + entry.getName()); dir.mkdirs(); } else { //file int count; byte data[] = new byte[BUFFER]; String fileName = destinationDir + File.separator + entry.getName(); FileOutputStream fos = new FileOutputStream(fileName); bos = new BufferedOutputStream(fos, BUFFER); while ((count = zis.read(data, 0, BUFFER)) != -1) { bos.write(data, 0, count); } bos.flush(); result.add(fileName); } }//next zip entry zis.close(); } finally { if (bos != null) { try { bos.close(); } catch (IOException ioe) { /* ignore */ } } if (zis != null) { try { zis.close(); } catch (IOException ioe) { /* ignore */ } } } }//else: input value unavailable return result; }//unzip() public static void main (String[] args) { if (args.length != 2) { System.out.println("Uso: java Zipping File.ZIP Cartella_di_Destinazione"); System.exit(0); } else { try { unzip(new FileInputStream(args[0]), args[1]); } catch (Exception e) { e.toString(); } } }

