Creating zip file in Java is super easy & fun too!
It's super easy... Happy Learning!
For convenience, I have taken two files (one excel & one word document) and my java program will zip both the file in a single zip file with a given name.
Note: Using very minor customization you can create a application for any number of file and any type of documents.
public class CreateZip {
/**
* Takes two hard-coded files in your machine
* And
* Zips both of them in a single zip file
*
*/
public void zipFiles() {
FileOutputStream fos = null;
ZipOutputStream zipOut = null;
try {
fos = new FileOutputStream(
"C:\\Users\\sghosh\\Desktop\\testing.zip");
String url = "C:\\Users\\sghosh\\Desktop\\Document for Menu Permission Tap.doc";
String url1 = "C:\\Users\\sghosh\\Desktop\\KT Plan for PJ.xls";
String fileName1 = url.substring(url.lastIndexOf("\\")+1);
String fileName2 = url1.substring(url.lastIndexOf("\\")+1);
zipOut = new ZipOutputStream(new BufferedOutputStream(fos));
BufferedInputStream input = new BufferedInputStream(
new FileInputStream(url));
BufferedInputStream input1 = new BufferedInputStream(
new FileInputStream(url1));
ZipEntry ze = new ZipEntry(fileName1);
System.out
.println("Zipping the file: "+fileName1);
zipOut.putNextEntry(ze);
byte[] tmp = new byte[4 * 1024];
int size = 0;
while ((size = input.read(tmp)) != -1) {
zipOut.write(tmp, 0, size);
}
ze = new ZipEntry(fileName2);
System.out.println("Zipping the file: "+fileName2);
zipOut.putNextEntry(ze);
while ((size = input1.read(tmp)) != -1) {
zipOut.write(tmp, 0, size);
}
zipOut.flush();
input1.close();
input.close();
zipOut.close();
System.out.println("Done... Zipped the files...");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fos != null)
fos.close();
} catch (IOException ex) {
}
}
}
/**
* @param a
* Main method for this class
*/
public static void main(String a[]) {
CreateZip mfe = new CreateZip();
mfe.zipFiles();
}
}
It's super easy... Happy Learning!
No comments :
Post a Comment