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();
}
}
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!