Eine komprimierte Zip Datei kann mit den Boardmitteln von Java erstellt werden. Möchte man jedoch diese auch mit einem Passwort schützen, so muss man auf andere Bibliotheken zurückgreifen, dazu aber in einem anderen Beitrag mehr.
Zuerst wollen wir eine Textdatei “test.txt” in ein Zip Archiv packen.
/** * Komprimieren einer Datei. * @param srcFile - die Quelldatei welche in ein Zip Archiv Komprimiert werden soll * @param destFile - das Ziel Archiv */ public static void zipFile(final File srcFile, final File destFile) { ZipOutputStream zipout = null; try { //Stream auf das Ziel Archiv öffnen zipout = new ZipOutputStream(new FileOutputStream(destFile)); //da wir hier nur eine Datei dem Zip Archiv hinzufügen nur ein Aufruf //sollten mehr Dateien hinzugefügt werden so kann mit new File("directory").listFiles(); //über eine Liste Iteriert werden. addFileToZipStream(srcFile, zipout); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { //zum Schluss den Stream schließen if (zipout != null) { try { zipout.close(); } catch (IOException e) { e.printStackTrace(); } } } } /** * Fügt einem existierenden ZipOutputStream eine Datei hinzu. * @param file * @param zipOut */ private static void addFileToZipStream(final File file, final ZipOutputStream zipOut) { FileInputStream inAttachmentFile = null; try { byte[] buffer = new byte[BYTE_CONST]; int len; //ein Stream zur Datei öffnen welche in das Zip Archiv gepackt werden soll. inAttachmentFile = new FileInputStream(file); zipOut.putNextEntry(new ZipEntry(file.getName())); while ((len = inAttachmentFile.read(buffer)) > 0) { zipOut.write(buffer, 0, len); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { //zum Schluss den Stream schließen if (inAttachmentFile != null) { try { inAttachmentFile.close(); } catch (IOException e) { e.printStackTrace(); } } } }
1 thought on “Erstellen von Zip Dateien”