ZipKomprimierung
-
Hallo,
bei meinem kleinen Komprimierungstool, lässt sich nur GZIP-Dateien komprimieren. Wenn ich die Optionen zip bei der JComboBox auswähle, wird nur eine leere Zip-Datei erstellt.Wo ist der Fehler?
import java.io.*; import java.util.zip.*; import javax.swing.JOptionPane; class Comprimize{ File files[]; GUI frame; String type; Comprimize(File files[], String type, GUI frame) throws IOException{ this.files = files; this.type = (type.equals("zip"))? "zip" : "gz"; this.frame = frame; comprimize(); } private void comprimize() throws IOException{ byte buffer[] = new byte[6000]; int gelesen = 0; for(byte i = 0; i < files.length; i++){ if (files[i].exists() && files[i].isFile()) { FileInputStream input = new FileInputStream(files[i]); FileOutputStream output = new FileOutputStream( files[i].toString() + "." + type); DeflaterOutputStream gzipOut; if(type.equals("zip")) gzipOut = new ZipOutputStream(output); else gzipOut = new GZIPOutputStream(output); while ( (gelesen = input.read(buffer, 0, buffer.length)) != -1) gzipOut.write(buffer, 0, gelesen); gzipOut.close(); output.close(); input.close(); JOptionPane.showMessageDialog(frame, files[i].toString() + " erfolgreich gepackt"); } else { JOptionPane.showMessageDialog(frame, "Fehler!", files[i].toString() + "ist ungültig", JOptionPane.ERROR_MESSAGE); } } } }
Es erscheint nicht mal die Meldung, dass es erfolgreich gepackt worden ist, obwohl dieser Befehl in der for-Schleife enthalten ist.
Liebe Grüße
Real
-
Ich hab´s mal debuggen lassen:
int gelesen = 10;
und byte buffer[]
[0] = 31;
[1] = -117;
[2] = 8;
der Rest ist 0;Bei gzipOut steht da:
java.util.ZipOutputStream
written: long = 0Ich denke, das war mal das wichtigste...
Liebe Grüße
Real
-
Dann geb ich halt Java die Schuld, dass es nicht klappt. Bäh! :p