Sadece aynı şeyi dün yapmak zorunda kaldı.
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipOutputStream zip = new ZipOutputStream(baos);
.... populate ZipOutputStream
String filename = "out.zip";
// the response variable is just a standard HttpServletResponse
response.setHeader("Content-Disposition","attachment; filename=\"" + filename + "\"");
response.setContentType("application/zip");
try{
response.getOutputStream().write(baos.toByteArray());
response.flushBuffer();
}
catch (IOException e){
e.printStackTrace();
}
finally{
baos.close();
}
Not Bir ByteArrayOutputStream sarmalayıcı kullanarak ve toByteArray ama muhtemelen sadece doğrudan standart InputStream.read() OutputStream.write() döngü ile yanıta OutputStream başka türde yazabilirsiniz ediyorum.
Aslında daha hızlı varsa, ama çoğu bellek bilinçli yaklaşım olmayabilir burada ByteArrayOutputStream benim kullanımını şüphelendiğiniz emin değilim Kapalı eli: