Di seguito un esempio su come zippare un file in Java utilizzando le features della Java7 in particolare:
- Il try with resources, che ci risparmia la fatica di dover chiudere gli stream aperti, basta dichiarare tutte le aperture nel blocco di parentesi tonde del try;
- Le suppressed exceptions, ossia la possibilità di farsi stampare nel catch anche tutte le altre eccezioni eventualmente riscontrate nel blocco delle parentesi tonde del try.
package it.varie;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipFile {
public static final int CHUNK=1024;
public static final String DIR="C:\\lav\\workspace\\wsTest\\Java7Cert\\src\\";
public static void main(String[] args) {
if(args.length==0){
System.err.println("Attenzione passare come parametro il nome file");
System.exit(-1);
}
String fileName=args[0];
String zipFileName=fileName+".zip";
byte[] buffer=new byte[CHUNK];
try( ZipOutputStream zipFile=new ZipOutputStream(new FileOutputStream(zipFileName));
FileInputStream fis=new FileInputStream(DIR+fileName);
)
{
zipFile.putNextEntry(new ZipEntry(zipFileName));
int lenRead=0;
while((lenRead=fis.read(buffer))>0){
zipFile.write(buffer, 0, lenRead);
}
}
catch(Exception e){
System.out.println("Eccezione: "+e);
System.out.println("Eventuali eccezioni soppresse");
for(Throwable t: e.getSuppressed()){
System.out.println(t);
}
}
}
}
Nessun commento:
Posta un commento