La décompression du fichier Zip Exception: entrée non valide taille (prévu 193144, mais il a obtenu 193138 octets)
Je suis en train de décompresser un fichier (récupérées à partir d'un serveur FTP):
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");
Je n'ai qu'un fichier texte dans le .fichier zip. Ce code fonctionne très bien sur mon windows local de la machine. Toutefois, lorsqu'il est déployé sur le serveur ubuntu, il lève l'exception suivante..
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)
au com.l'impératrice.Xsync.programme de mise à jour.ClientConfiguration.unZipFile(ClientConfiguration.java:246)
J'ai manuellement décompressé..fonctionne très bien.
D'origine .txt taille du fichier est 193144 octets.
Il n'a probablement rien à voir avec le problème, mais
Essayé aussi.. n'A pas résolu le problème!!!!!
InputStream.read(...)
retourne -1
à EOF et peut retourner 0
sans qu'il y ait une erreur, de sorte que vous devriez vérifier pour >= 0
ou != -1
, pas > 0
.Essayé aussi.. n'A pas résolu le problème!!!!!
OriginalL'auteur simpleJack | 2012-10-29
Vous devez vous connecter pour publier un commentaire.
Il ressemble à votre fichier zip a été endommagé dans le processus de les transférer à la machine Ubuntu. Essayez de décompresser le même fichier à partir de la ligne de commande sur la machine Ubuntu pour voir si il signale également des problèmes.
Si je devais faire une estimation aléatoire, c'est que vous avez transféré le fichier ZIP via FTP et utilisé 'ascii' au lieu de 'binaire' mode. (FTP pourraient avoir converti
'\r\n'
à'\n'
six fois ...)OriginalL'auteur Stephen C