私は(FTPサーバから取得した)ファイルを解凍しようとしています:ファイルジップ例外解凍:(193144を期待したが193138バイトだ)無効なエントリのサイズを
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");
私が唯一の1つのテキストファイルを持っています。 ZIPファイル。このコードはローカルのWindowsマシンで正常に動作します。 com.empress.Xsync.updater.ClientConfiguration.unZipFile(ClientConfiguration.java:246)
でしかし、Ubuntuのサーバにデプロイするとき、それは次の例外がスローされます。..
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)
私はそれを手動で解凍しました..正常に動作します。 オリジナルの.txtファイルサイズは193144バイトです。
これはおそらく問題とは関係ありませんが、 'InputStream.read(...)'はEOFで '-1'を返し、' 0 'エラーなしで、'> = 0'や '!= -1'ではなく'> = -1'をチェックする必要があります。 –
それも試してみました..問題を解決できませんでした! – simpleJack