我想使用InputStream
压缩ZipOutputStream
,然后从压缩InputStream
获取ZipOutputStream
而不保存光盘上的文件。这可能吗?
答案 0 :(得分:16)
我明白了:
public InputStream getCompressed( InputStream is )
throws IOException
{
byte data[] = new byte[2048];
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ZipOutputStream zos = new ZipOutputStream( bos );
BufferedInputStream entryStream = new BufferedInputStream( is, 2048);
ZipEntry entry = new ZipEntry( "" );
zos.putNextEntry( entry );
int count;
while ( ( count = entryStream.read( data, 0, 2048) ) != -1 )
{
zos.write( data, 0, count );
}
entryStream.close();
zos.closeEntry();
zos.close();
return new ByteArrayInputStream( bos.toByteArray() );
}