问题
I want to compress an InputStream
using ZipOutputStream
and then get the InputStream
from compressed ZipOutputStream
without saving file on disc. Is that possible?
回答1:
I figured it out:
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() );
}
来源:https://stackoverflow.com/questions/20221128/convert-zipoutputstream-to-bytearrayinputstream