尝试 gunzip 文件时出现随机 "Unexpected end of Zlib input stream" 异常

Random "Unexpected end of Zlib input stream" exception when trying to gunzip files

我有一个 class 可以将给定的 tar.gz 文件提取到一个简单的 .tar 文件中。 但对于某些文件会抛出此异常:

java.io.EOFException: Unexpected end of ZLIB input stream

管理提取的方法如下所示:

GZIPInputStream gzipInputStream;
FileOutputStream fileOutputStream;
byte data[] = new byte[BUFFER];
gzipInputStream = new GZIPInputStream( baseInputStream );
fileOutputStream = new FileOutputStream( destinationFile );
while ( ( count = gzipInputStream.read( data, 0, BUFFER ) ) != -1 )
{
    fileOutputStream.write( data, 0, count );
}
fileOutputStream.flush();
fileOutputStream.close();
gzipInputStream.close();

奇怪的是有些文件会抛出异常,有时又不会,但我想不通为什么...:(

我是不是漏掉了什么?

非常感谢,

错误是由于另一个线程同时访问该文件造成的。