注:应用技术:spring3.0注解,实现思路: 获取数据 —> 写入文件 —> 下载文件(或其他方式),这里将前两个步骤合并在一个方法了。 /* * 获取数据 */ @RequestMapping("/getExportData") public String getExportData(String clearCenterId,String batchDate, String batchSeq,String opr,HttpServletResponse response,ModelMap modelMap){ try{ String modeFile = "/downLoad/downLoad.txt"; // String modeFile = "/downLoad/"+ clearCenterId +"-"+ batchDate + "(" + batchSeq +").txt"; String msg = this.ciaeService.getBeforeExport(clearCenterId, batchDate, new Integer(batchSeq), opr); if(msg.equals("success")){ String sql = "SELECT CLEARCENTERID,BATCHDATE,BATCHSEQ,SEQID,BANKID,BANKACCOUNT,NAME," + "ADDRESS,FEE,CONTRACTNO,CUSTID,DEALRSLT,DEALTIME,OPER " + " FROM CMS_IC_ACCOUNT_EXCHG_TOTAL" + " WHERE CLEARCENTERID='"+clearCenterId+"'"+ " AND BATCHDATE='"+batchDate+"'" + " AND BATCHSEQ="+batchSeq; // logger.debug("sql:"+sql); List<CmsIcAccountExchgTotal> list = this.ciaeService.getBySql(sql); StringBuffer str = new StringBuffer(); for(int i=0;i<list.size();i++){ CmsIcAccountExchgTotal mode = list.get(i); str.append(mode.getSeqId()+","+mode.getBankId()); str.append(","+mode.getBankAccount()+","+mode.getName()+","+mode.getAddress()); str.append(","+mode.getFee()+","+mode.getContractNo()+","+mode.getCustId()); str.append(",/r/n"); /* if(str.length()<1){ str.append(mode.getSeqId()+","+mode.getBankId()); str.append(","+mode.getBankAccount()+","+mode.getName()+","+mode.getAddress()); str.append(","+mode.getFee()+","+mode.getContractNo()+","+mode.getCustId()); }else{ str.append(",/r/n"); str.append(mode.getSeqId()+","+mode.getBankId()); str.append(","+mode.getBankAccount()+","+mode.getName()+","+mode.getAddress()); str.append(","+mode.getFee()+","+mode.getContractNo()+","+mode.getCustId()); } */ } modeFile = request.getSession().getServletContext().getRealPath("//")+modeFile; File file = new File(modeFile); if(!file.exists()){ file.mkdir(); } PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(modeFile))); out.write(str.toString()); // 将数据写入文件 out.close(); // } modelMap.put("success", true); modelMap.put("path", modeFile); return "list"; }catch(Exception e){ modelMap.put("success", false); modelMap.put("msg", e.getMessage()); e.printStackTrace(); return "list"; } } /* * 提供下载txt文件 */ @RequestMapping("/downLoad") public void downLoad(String fileUrl,String clearCenterId,String batchDate, String batchSeq,String opr,HttpServletResponse response){//,ModelMap modelMap){ try{ // 以流的形式下载文件。 logger.debug("url:"+fileUrl); InputStream fis = new BufferedInputStream(new FileInputStream(fileUrl)); byte[] buffer = new byte[fis.available()]; fis.read(buffer); fis.close(); // 清空response response.reset(); // 设置response的Header response.addHeader("Content-Disposition", "attachment;filename=downLoad.txt"); // response.addHeader("Content-Disposition", "attachment;filename=" + clearCenterId +"-"+ batchDate + "(" + batchSeq +").txt"); OutputStream toClient = new BufferedOutputStream(response.getOutputStream()); response.setContentType("application/octet-stream"); toClient.write(buffer); toClient.flush(); toClient.close(); this.ciaeService.updateDate(clearCenterId,batchDate,new Integer(batchSeq),opr); }catch(Exception e){ e.printStackTrace(); } }