Creare un file zip in Java

Postato da ROb | nella categoria Java | giovedì, 4 marzo 2010

2

Già dalla versione 1.4 Java supporta la possibilità di creare file compressi di uno o più file.
L’algoritmo di compressione supportato è lo zip e le classi in gioco sono java.util.zip.ZipEntry e java.util.zip.ZipOutputStream.

File zip

La seguente funzione prende in input un file, che conterrà il nostro zip, e una lista di file.
All’interno del file zip inserirà tutti i file passati nel secondo parametro.

	private void createZip(File zipFile, List<File> files) throws IOException {
		FileOutputStream dest = null;
		ZipOutputStream out = null;

		byte data[] = new byte[BUFFER];

		try {
			dest = new  FileOutputStream(zipFile);
			out = new ZipOutputStream(new BufferedOutputStream(dest));

			if (files != null) {
				for (Iterator iter = files.iterator(); iter.hasNext();) {
					File file = null;
					FileInputStream fi = null;

					try {
						file = (File) iter.next();
						fi = new FileInputStream(file);

						/* add zip entry */
						ZipEntry entry = new ZipEntry(file.getName());
						out.putNextEntry(entry);

						int count;
						while ((count = fi.read(data, 0, BUFFER)) != -1) {
						   out.write(data, 0, count);
						}
					}
					catch (Exception e) {
						e.printStackTrace();
					}
					finally {
						fi.close();
					}
				}
			}
		}
		catch (Exception e) {
			e.printStackTrace();
		}
		finally {
			out.close();
		}
	}

Commenti inviati (2)

Mi piacerebbe imparare Java per creare un’app per Android ma è veramente troppo ostico come linguaggio!

Non sai quanto vorrei fare un’applicazione Android anch’io ma non avuto tempo e modo di avvicinarmi all’ambiente di sviluppo di Android.
Cosa pensi che sia ostico Java o l’sdk Android?

Scrivi un commento