Java - Dateien als ZIP komprimieren

Die java.util.zip bietet eine zweistufige Zip-Komprimierungsmethode:
Datei mit FileInputStream.
Fügen Sie den Dateinamen zu ZipEntry und speichern Sie es als Ausgabe mit ZipOutputStream.

Das folgende Programm liest die Datei "c:\\FIchier0410.log" und komprimiert sie in "c:\\monFichier.zip".

package com.codeurjava.File; 

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class zipFile {

public static void main(String[] args) {

final int BUFFER = 2048;

try{
byte buffer[] = new byte[BUFFER];

FileOutputStream fileos = new FileOutputStream("C:\\monFichier.zip");
ZipOutputStream zipos = new ZipOutputStream(fileos);
ZipEntry zipentry= new ZipEntry("c:\\Fichier0410.log");
zipos.putNextEntry(zipentry);
FileInputStream in = new FileInputStream("c:\\Fichier0410.log");

int lec;
while ((lec = in.read(buffer)) > 0) {
zipos.write(buffer, 0, lec);
}

in.close();
zipos.closeEntry();
zipos.close();

System.out.println("Komprimierte Datei erstellt!");

}catch(IOException ex){
ex.printStackTrace();
}

}

}
Runtime:

Komprimierte Datei erstellt!

Mehrere Dateien aus einem Ordner rekursiv komprimieren

Lesen Sie alle Dateien und Unterordner von "c:\\ test" und komprimieren Sie sie in "c:\\monFichier.zip". Dieses Programm komprimiert rekursiv die Verzeichnisse .

package com.codeurjava.File; 

import java.io.Datei;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class zipFile {

final static String dossier_src = "c:\\test";
final static String fichier_zip_desc = "monFichier.zip";
statische Liste< String> Liste;

public static void main(String[] args) {

final int BUFFER = 2048;

Dateiknoten = neue Datei(dossier_src);
list = new ArrayList();
Liste der Dateien (Knoten);

try{
byte buffer[] = new byte[BUFFER];

FileOutputStream fileos = new FileOutputStream(fichier_zip_desc);
ZipOutputStream zipos = new ZipOutputStream(fileos);

for(String file: list){
ZipEntry zipentry= new ZipEntry(file);
zipos.putNextEntry(zipentry);
FileInputStream in =
new FileInputStream(dossier_src + File.separator + file);

int lec;
while ((lec = in.read(buffer)) > 0) {
zipos.write(buffer, 0, lec);
}

in.close();
System.out.println("+Datei+" Datei hinzugefügt");
}

zipos.closeEntry();
zipos.close();

System.out.println("Komprimierte Datei erstellt!");

}catch(IOException ex){
ex.printStackTrace();
}

}

public static List filenode{

//add files
if(node.isFile()){
String-Datei = node.getAbsoluteFile().toString();
String-Pfad = file.substring(dossier_src.length()+1, file.length());
list.add(Pfad);
}

if(node.isDirectory()){
String[] subFile = node.list();
for(String Dateiname: Unterdatei){
Dateiliste(neue Datei(Knoten, Dateiname));
}
}
Rückgabeliste;
}
}
Runtime:

Hinzugefügt img_01.jpg Datei
pdf-Datei\java.pdf hinzugefügt
table.sql Datei hinzugefügt
Word-Datei\course java.docx hinzugefügt
Komprimierte Datei erstellt!

Ressourcen: