Apache POI输出问题

我有一个Apache POI的问题。 我在处理完相关数据后试图返回一个文件。 当我将文件返回到浏览器(包括IE8 / 9,Firefox)时,浏览器会返回一个垃圾字符。 这只发生在Excel文件很大并且进程已经运行了2分钟以上的情况下。 否则,它返回一个文件,我可以在Excel中打开。

任何帮助表示赞赏,谢谢。

response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + ".xls\""); OutputStream out = null; try { out = new BufferedOutputStream(response.getOutputStream()); wb.write(out); out.flush(); } catch (IOException ex) { ex.printStackTrace(); } 

我想你应该指定内容的长度。 这是你应该插入的行:

 response.setContentLength(/* length of the byte[] */); 

我build议你使用Apache Commons IOUtils类来处理字节数组和stream。