java导出txt文件

  1.  第一种形式,是以流的开式直接response,适用于数据量不是很大的情况下。 
  2. 第二种形式,是先将要下载的文件写到后台的一个文件或者excel 中,然后再进行下载。

第一种实现:

private void writeCuHmToTxt(List<Object[]> list) throws Exception {  
		 HttpServletResponse response = this.getResponse();
		 response.reset();
		 this.getResponse().setContentType("text/plain");
		 String fileName = URLEncoder.encode("非移动用户", "UTF-8");
		 this.getResponse().setHeader("Content-Disposition","attachment; filename=" + fileName + ".txt");
			
	     BufferedOutputStream buff = null;   
	     StringBuffer write = new StringBuffer();   
	     //String tab = "  ";   
	     String enter = "\r\n";   
	     ServletOutputStream outSTr = null;   
	     try {   
	          outSTr = response.getOutputStream();  // 建立   
	          buff = new BufferedOutputStream(outSTr);   
	          for (int i = 0; i < list.size(); i++) {  
	        	  Object[] objs = list.get(i);
	              write.append(objs[1].toString() + enter);   
	          }   
	          buff.write(write.toString().getBytes("UTF-8"));   
	          buff.flush();   
	          buff.close();   
	     } catch (Exception e) {   
	         e.printStackTrace();   
	     } finally {   
             try {   
                 buff.close();   
                 outSTr.close();   
             } catch (Exception e) {   
                 e.printStackTrace();   
            }   
	    }   
	}

 第二种实现:

 

// 输出TXT   
    public static void writeToTxt(HttpServletRequest request, List list) {   
        FileOutputStream outSTr = null;   
        BufferedOutputStream Buff = null;    String path = request.getSession().getServletContext().getRealPath(   
                "upordown/down/model/magazinePub.txt");   
        String tab = "  ";   
        String enter = "\r\n";   
        MagazineBean magazine;   
        StringBuffer write ;   
        try {   
            outSTr = new FileOutputStream(new File(path));   
            Buff = new BufferedOutputStream(outSTr);   
            for (int i = 0; i < list.size(); i++) {   
               magazine = (MagazineBean) list.get(i);   
                write = new StringBuffer();   
                write.append("期刊名称:" + tab);   
                write.append(delNull(magazine.getTenet()) + enter);   
                write.append(enter);       
                Buff.write(write.toString().getBytes("UTF-8"));   
            }          
            Buff.flush();   
            Buff.close();   
      } catch (Exception e) {   
            e.printStackTrace();   
        } finally {   
            try {   
               Buff.close();   
                outSTr.close();   
            } catch (Exception e) {   
               e.printStackTrace();   
            }   
        }   
    }  

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值