如何在java中使用zip压缩和下载xlsx文件

时间:2014-02-28 07:20:02

标签: java excel servlets zip

我正在使用poi创建一个xlsx并将其保存在fileSystem上。我需要在servlet调用上下载文件,由于内存限制,我没有创建xssf工作簿对象,而是使用以下代码:

byte[] buf = new byte[1024];
ServletOutputStream sOut = response.getOutputStream(); 
FileInputStream input = null;
try {
    long length = fileToRead.length(); 
    input = new FileInputStream(fileToRead);

    while ((input != null) && ((length = input.read(buf)) != -1)) {   
          sOut.write(buf, 0, (int) length);  
    }

fileToRead是文件系统中存在的文件。

如何将其与How to create a zip file in Java

整合

1 个答案:

答案 0 :(得分:0)

您可以使用

ZipOutputStream zos = new ZipOutputStream(response.getOutputStream());

....
ze = new ZipEntry("xlsData");
zos.putEntry (ze);
// loop
zos.write(buf, 0, (int) length);  

// finally 
zos.close();