我正在使用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是文件系统中存在的文件。
整合答案 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();