Ich möchte eine normale Datei in eine ZIP-Datei komprimieren und dann als GZIP-Datei komprimieren, ohne eine neue Datei zu erstellen.Wie komprimiert man eine .zip in .gz in Java?
Zum Beispiel lassen Sie uns sagen, dass ich ein PDF-Dokument doc.pdf haben, was ich zu bekommen habe, ist: doc.pdf.zip.gz
Ich will nicht eine neue Datei doc.pdf.zip
genannt creat und dann öffnen und gzip es.
Ich bin mit einem Server arbeiten, um die Datei aus dem Browser zu bekommen und wieder zurückkehren, das ist meine Funktion:
public void ZIPandGZIP(String fileName, OutputStream os, String header) throws FileNotFoundException
{
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
DataOutputStream dos = new DataOutputStream(os);
try {
dos.writeBytes(header);
ZipOutputStream zpos = new ZipOutputStream(os);
zpos.putNextEntry(new ZipEntry(fileName));
GZIPOutputStream gos = (new GZIPOutputStream(zpos));
fis.read(data);
gos.write(data);
zpos.flush();
zpos.close();
gos.flush();
gos.close();
dos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ich eine Datei doc.pdf.zip.gz
bekommen, aber es hat eine beschädigte Datei doc.pdf
und nicht gezippt Warum??
Verschieben Sie die 'close()' Aufrufe zu einem 'finally' Block –
Danke, ich habe das gemacht, aber es wird immer das Gleiche zurückgeben. –
hatte nichts mit Ihrem Problem zu tun, nur beste Praxis: P –