Also ich hätte mal ne Frage, und zwar wie kann ich in einer schon vorhandenen Zipdatei neue ZipEntry erzeugen, alte verändern, ohne die vorhandenen ZipEntrys zu löschen oder die Zipdatei unbrauchbar zu machen.
Wenn ich dieses Programm ausführe wird quasi die alte Zipdatei neu erzeugt und nur die neu eingefügten ZipEntrys sind enthalten.
Was ich auch festgestellt habe, ist wenn dich alles ausblende und nur diese Zeile Ausführe
Wird die Zipdatei zerstört und man kann sie nicht mehr mit WinRar öffnen.
Und falls ich diese Zeile in den oberen Code einfüge.
(Stream schreibt am ende der Datei)
Wird mir ein "unerwartetes Archivende" Fehler angezeigt nach öffnen mit WinRar.
Ich hoffe jemand hat ne Idee wie ich mit bestehenden Zip- oder Jardateien arbeiten kann.
Wenn ich dieses Programm ausführe wird quasi die alte Zipdatei neu erzeugt und nur die neu eingefügten ZipEntrys sind enthalten.
Code:
import java.util.zip.*;
import java.io.*;
public class Zip {
public static void main(String args[]) {
PrintWriter stdout = new PrintWriter(System.out, true);
int read = 0;
FileInputStream in;
byte[] data = new byte[1024];
try {
ZipOutputStream out =
new ZipOutputStream(new FileOutputStream("1.zip"));
out.setMethod(ZipOutputStream.DEFLATED);
try {
stdout.println("1.test");
ZipEntry entry = new ZipEntry("13.temp");
in = new FileInputStream("1.zip");
out.putNextEntry(entry);
while((read = in.read(data, 0, 1024)) != -1)
out.write(data, 0, read);
out.closeEntry();
ZipEntry entry2 = new ZipEntry("134.temp");
out.putNextEntry(entry2);
while((read = in.read(data, 0, 1024)) != -1)
out.write(data, 0, read);
out.closeEntry();
in.close();
}
catch(Exception e) {
e.printStackTrace();
}
out.close();
}
catch(IOException ex) {
ex.printStackTrace();
}
}
}
Was ich auch festgestellt habe, ist wenn dich alles ausblende und nur diese Zeile Ausführe
Code:
ZipOutputStream out =
new ZipOutputStream(new FileOutputStream("1.zip"));
Wird die Zipdatei zerstört und man kann sie nicht mehr mit WinRar öffnen.
Und falls ich diese Zeile in den oberen Code einfüge.
Code:
ZipOutputStream out =
new ZipOutputStream(new FileOutputStream("1.zip", true));
(Stream schreibt am ende der Datei)
Wird mir ein "unerwartetes Archivende" Fehler angezeigt nach öffnen mit WinRar.
Ich hoffe jemand hat ne Idee wie ich mit bestehenden Zip- oder Jardateien arbeiten kann.