java 文件大数据Excel下载实例代码
java文件大数据Excel下载实例代码
excel可以用xml表示。故可以以此来实现边写边下载文件
packagecom.tydic.qop.controller; importjava.io.BufferedInputStream; importjava.io.BufferedOutputStream; importjava.io.ByteArrayInputStream; importjava.io.ByteArrayOutputStream; importjava.io.IOException; importjava.io.InputStream; importjavax.servlet.ServletOutputStream; importjavax.servlet.http.HttpServletResponse; importorg.springframework.stereotype.Controller; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.bind.annotation.ResponseBody; importcom.tydic.qop.vo.param.RealTimeReportParamVo; @Controller @RequestMapping(value="/exportStream") publicclasstestExportByStream{ /* *导出文件通过流 */ @RequestMapping(value="/exportStream.html") @ResponseBody publicStringexportByStream(RealTimeReportParamVoparams,HttpServletResponseresponse)throwsException{ StringfileName="接口统计分析"; response.reset(); response.setContentType("application/octet-stream;charset=utf-8"); response.setHeader("Content-Disposition","attachment;filename="+newString((fileName+".txt").getBytes(),"iso-8859-1")); ServletOutputStreamout=response.getOutputStream(); BufferedInputStreambis=null; BufferedOutputStreambos=null; for(inti=0;i<1000000;i++){ StringcontentStr="aaa自己写的controller"+i+"\n"; System.out.println(contentStr); byte[]contentByte=(contentStr).getBytes(); InputStreamis=newByteArrayInputStream(contentByte); readWrite(is,out,bis,bos); } if(bis!=null) bis.close(); if(bos!=null) bos.close(); returnnull; } publicvoidreadWrite(InputStreamis,ServletOutputStreamout,BufferedInputStreambis,BufferedOutputStreambos){ try{ bis=newBufferedInputStream(is); bos=newBufferedOutputStream(out); byte[]buff=newbyte[2048]; intbytesRead; //Simpleread/writeloop. while(-1!=(bytesRead=bis.read(buff,0,buff.length))){ bos.write(buff,0,bytesRead); } bos.flush(); }catch(finalIOExceptione){ e.printStackTrace(); } } }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!