Die entpackten Zip-Datei Exception: invalid entry size (voraussichtlich 193144 bekam aber 193138 bytes)

Ich versuche zu entpacken einer Datei (abgerufen von einem FTP-server):

ZipInputStream zis = new ZipInputStream(
    new FileInputStream(zipFile));
    ZipEntry ze = zis.getNextEntry();
    while (ze != null) {
        String fileName = ze.getName();
        File newFile = new File(outputFileName+outputFolder + File.separator + fileName);
        System.out.println("file unzip : " + newFile.getAbsoluteFile());
        FileOutputStream fos = new FileOutputStream(newFile);
        int len;
        while ((len = zis.read(buffer)) > 0) {
            fos.write(buffer, 0, len);
        }
        fos.close();
        sendFile = newFile;
        ze = zis.getNextEntry();
    }
    zis.closeEntry();
    zis.close();
    System.out.println("Done");

Ich habe nur eine text Datei in der .zip-Datei. Dieser code funktioniert auf meinem lokalen windows-Rechner. Jedoch, wenn Sie eingesetzt werden, auf der ubuntu-server ist, wird die folgende Ausnahme..

java.util.zip.ZipException: invalid entry size (expected 193144 but got 193138 bytes)
at java.util.zip.ZipInputStream.readEnd(ZipInputStream.java:386)
at java.util.zip.ZipInputStream.read(ZipInputStream.java:156)
at java.io.FilterInputStream.read(FilterInputStream.java:90)

unter com.Kaiserin.Xsync.updater.ClientConfiguration.unZipFile(ClientConfiguration.java:246)

Habe ich manuell entpackt..es funktioniert einwandfrei.
Original .txt-Datei-Größe ist 193144 bytes.

  • Es hat wahrscheinlich nichts mit dem problem zu tun, aber InputStream.read(...) zurück -1 an-und EOF zurückgeben kann 0 ohne dass es zu einem Fehler, so dass Sie überprüfen sollten, für >= 0 oder != -1, nicht > 0.
  • Versucht das auch.. Hat das problem nicht lösen!!
InformationsquelleAutor simpleJack | 2012-10-29
Schreibe einen Kommentar