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.

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();
}
}

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?