excel可以用xml表示。故可以以此来实现边写边下载文件
package com.tydic.qop.controller; import java.io.BufferedInputStream; import java.io.bufferedoutputstream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import javax.servlet.ServletoutputStream; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.tydic.qop.vo.param.RealTimeReportParamVo; @Controller @RequestMapping(value = "/exportStream") public class testExportByStream { /* * 导出文件通过流 */ @RequestMapping(value = "/exportStream.html") @ResponseBody public String exportByStream(RealTimeReportParamVo params,HttpServletResponse response) throws Exception{ String fileName="接口统计分析"; response.reset(); response.setContentType("application/octet-stream;charset=utf-8"); response.setHeader("Content-disposition","attachment;filename="+ new String((fileName + ".txt").getBytes(),"iso-8859-1")); ServletoutputStream out = response.getoutputStream(); BufferedInputStream bis = null; bufferedoutputstream bos = null; for(int i=0;i<1000000;i++){ String contentStr="aaa自己写的controller"+i+"\n"; System.out.println(contentStr); byte[] contentByte=(contentStr).getBytes(); InputStream is = new ByteArrayInputStream(contentByte); readWrite(is,out,bis,bos); } if (bis != null) bis.close(); if (bos != null) bos.close(); return null; } public void readWrite(InputStream is,ServletoutputStream out,BufferedInputStream bis,bufferedoutputstream bos){ try { bis = new BufferedInputStream(is); bos = new bufferedoutputstream(out); byte[] buff = new byte[2048]; int bytesRead; // Simple read/write loop. while (-1 != (bytesRead = bis.read(buff,buff.length))) { bos.write(buff,bytesRead); } bos.flush(); } catch (final IOException e) { e.printstacktrace(); } } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。