Zippen mittels Java

hesk

Erfahrenes Mitglied
Was ist momentan die beste Art um mittels Java viele Datein zu zippen?

Bei einem alten Programm wird

java.util.zip.ZipEntry;
java.util.zip.ZipFile;
java.util.zip.ZipOutputStream;

verwendet...sind die noch immer die beste Lösung?

Vielen Dank
 
Hallo!

Es gibt noch ein apache commons Projekt, das sich mit diesem Thema beschäftigt:
http://commons.apache.org/compress/zip.html
Ich habe das irgendwann mal benötigt, als ich Probleme mit Umlauten in Dateinamen innerhalb des Zip-Files hatte. (Umlaute sind böse, fiese Wesen, ohne die aber leider kaum eine Sprache auskommt ;) )

Und vor einiger Zeit habe ich von einem Projekt gelesen, das zum Zippen die Klasse File erweitert hat - damit konnte man sehr bequem zip Files erstellen... Aber dazu finde ich den Link gerade nicht wieder...

mfg,

RoCMe
 
Hallo nochmal!

Momentan verwende ich folgendes:

Java:
FileInputStream fi;
                
fi = new FileInputStream( addingFile );
BufferedInputStream origin = new BufferedInputStream(fi, BUFFER);
ZipEntry entry = new ZipEntry( rootName + file );
zipOutputStream.putNextEntry(entry);
                
int count;
byte data[] = new byte[BUFFER];
                
while((count = origin.read(data, 0, BUFFER)) != -1) 
        zipOutputStream.write(data, 0, count);
                
origin.close();
fi.close();

Bei ca 50.000 Dateien mit insgesamt 2GB dauert es ziemlich lange.
Gibt es eine schnelere Möglichkeit?

Danke!
 
Bei 2GB, und vor allem wenn diese dann auch noch auf 50k Dateien verteilt sind, dauert das Packen immer lange o.O Was erwartest du für eine Verbesserung?
 
Wie lange würde es denn mit einem externen Tool wie WinRAR, I-Zarc, etc. dauern? Wenn die auch so lange brauchen, dann sinken die Chancen natürlich, was aber nicht heißen soll, dass es unmöglich ist.
 
xz oder lz wären wahrscheinlich schneller (und besser), aber ich kenne keine Packer/Entpacker dafür, die in Java geschrieben sind.
 

Neue Beiträge

Zurück