`

java导出txt

阅读更多
 第一种形式,是以流的开式直接response,适用于数据量不是很大的情况下。
第二种形式,是先将要下载的文件写到后台的一个文件或者excel 中,然后再进行下载。
第一种实现:
package com.smartdot.pdm.business.corp.magazine.util;

import java.io.BufferedOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;

import com.smartdot.pdm.business.corp.magazine.bean.MagazineBean;

public class MagazineUtils {

	// 输出TXT
	public static void writeToTxt(HttpServletResponse response, List list) {

		response.setContentType("text/plain");// 一下两行关键的设置
		response.addHeader("Content-Disposition",
				"attachment;filename=期刊出版社.txt");// filename指定默认的名字
		BufferedOutputStream buff = null;
		StringBuffer write = new StringBuffer();
		String tab = "  ";
		String enter = "\r\n";
		MagazineBean magazine;
		ServletOutputStream outSTr = null;
		try {
			outSTr = response.getOutputStream();// 建立
			buff = new BufferedOutputStream(outSTr);
			for (int i = 0; i < list.size(); i++) {
				magazine = (MagazineBean) list.get(i);
				write.append("期刊名称:" + tab);
				write.append(delNull(magazine.getChineseName()) + 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();
			}
		}
	}
	public static String delNull(Date date) {
		String returnStr="";
		if (date!=null) {
			SimpleDateFormat sf=new SimpleDateFormat("yyyy年MM月");
			returnStr=sf.format(date); 	
		} 
		return returnStr;
	}
	public static String delNull(String str) {
		String returnStr="";
		if (StringUtils.isNotBlank(str)) {
			returnStr=str;		
		} 
		return returnStr;
	}
}

 第二种实现:

// 输出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();
			}
		}
	}

 下载的代码:

	//下载
	public ActionForward downFile(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String name=request.getParameter("filename");
		// TODO Auto-generated method stub
		try {
			String path = request.getSession().getServletContext().getRealPath(
					"upordown/down/model/"+name);
			File file = new File(path);
			String filename = file.getName();

			// 取得文件的扩展名ext
			String ext = filename.substring(filename.lastIndexOf(".") + 1)
					.toUpperCase();

			InputStream fis = new BufferedInputStream(new FileInputStream(path));
			byte[] buffer = new byte[fis.available()];
			fis.read(buffer);
			fis.close();

			response.reset();
			response.addHeader("Content-Disposition", "attachment;filename="
					+ new String(filename.getBytes()));
			response.addHeader("Content-Length", "" + file.length()); // 设置返回的文件类型
			OutputStream toClient = new BufferedOutputStream(response
					.getOutputStream()); // 得到向客户端输出二进制数据的对象
			// 根据扩展名声称客户端浏览器mime类型
			if (ext.equals("xls"))
				response.setContentType("application/msexcel");
			else
				response.setContentType("application/octet-stream"); // 设置返回的文件类型
			toClient.write(buffer); // 输出数据
			toClient.flush();
			toClient.close();
		} catch (IOException ex) {
			ex.printStackTrace();
			return mapping.findForward("error");
		}
		return null;
	}

  客户端调用

//下载txt
function  downTxt(){
window.open ('${pageContext.request.contextPath}/business/magazineAction.do?method=downFile&filename=magazinePub.txt', '文件下载', 'height=300, width=400, top='+(screen.availHeight-300)/2+', left='+(screen.availWidth-400)/2+', toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
}


//导出txt
function exportTxt(){
	var queryForm=document.queryForm;
	var minRow=queryForm.minRow.value;
	var maxRow=queryForm.maxRow.value;
	var totalCnt="${totalCnt}";
	if(StringUtils.isBlank(totalCnt)){
		totalCnt=0;
		}
 if(Validator.Validate(2)){	
	 	 minRow=parseInt(minRow);
	 	 maxRow=parseInt(maxRow);		
	 //	if(maxRow-minRow+1>1000){
	 //		alert("每次最多可以导出1000条数据");
	 //		return ;
	 //		}
	 		if(maxRow>totalCnt){
	 			alert("结束记录数不能等大于总记录条数:"+totalCnt);
	 	   	return ;
	 		} 
	 		if(maxRow<minRow){
	 				alert("结束记录数不能小于开始记录数");
	 				return ;
	 		}
	 
	 	req.setRequestMethod("post");
		var url="${pageContext.request.contextPath}/business/magazineAction.do?method=doExportTxt&orderColumn=${orderColumn}&orderType=${orderType}&queryCondition="+encodeURIComponent('${queryCondition}')+"&maxRow="+maxRow+"&minRow="+minRow+"&isDecorator=false";
		req.setRequestURL(url);
		req.setAsync(true);
		req.setMethodOnSuccess(displayMsg);
		req.setRequestHeader("Content-Type","text/html;charset=gbk");
		req.send(null);
	}
	
}

 

  • cos.jar (55.1 KB)
  • 下载次数: 550
分享到:
评论
12 楼 Jack_Wilshere 2014-10-30  
com.smartdot.pdm.business.corp.magazine.bean.MagazineBean;在哪啊?
11 楼 qq852379095 2014-06-05  
String
10 楼 lx8598 2014-04-29  

<%
ErpVoucherScope scope = new ErpVoucherScope();
   
scope.setCltno(request.getParameter("clientId"));
    scope.setStartdate(Text.getDate(request.getParameter("sDate")));
    scope.setEnddate(Text.getDate(request.getParameter("eDate")));
   
ServerLocator locator = (ServerLocator)request.getSession().getAttribute(ServiceLocator.SERVICE_LOCATOR);

ErpVoucher3[] list =
    locator.getErpVoucherService().getEasVoucherTxt(scope);

SimpleDateFormat sdForm = new SimpleDateFormat("yyyyMMdd");
String fileName=request.getParameter("clientId")+"-"+sdForm.format(Text.getDate(request.getParameter("eDate")))+".txt"; //System.currentTimeMillis();
//response.setContentType( "Application/OCTET-STREAM;charset=GB2312");

        response.setContentType("text/plain");// 一下两行关键的设置  
        response.addHeader("Content-Disposition",  
                "attachment;filename=期刊出版社.txt");// filename指定默认的名字  
        BufferedOutputStream buff = null;  
        StringBuffer write = new StringBuffer();  
        String tab = "  ";  
        String enter = "\r\n";  

        ServletOutputStream outSTr = null;  
        try {  
            outSTr = response.getOutputStream();// 建立  
            buff = new BufferedOutputStream(outSTr);  
            write.append("1234"); 
            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();  
            }  
        }  

%>


执行完发现1234 前面有12行空行。肿么去掉空行呢
9 楼 lx8598 2014-04-29  
第一种方法有个问题。

导出的txt文件里有12行空行。 有啥么办法可以去掉泥?
8 楼 dove19900520 2013-08-06  
代码写的太好了,给了我灵感,谢谢。
7 楼 从百草园到三味书屋 2013-01-23  
卤煮,我爱你~
6 楼 escode 2012-03-29  
代码不错,如果给个完整的例子就更好了
5 楼 shiping8000 2011-12-31  
不错 ! 代码非常经典 !
4 楼 zzhanp 2011-11-15  
记号
3 楼 wjb_forward 2011-06-22  
代码很漂亮,就跟女孩子穿的衣服一样
2 楼 生死格斗 2011-04-14  
楼主,太感谢了,雪中送炭那。。。
1 楼 twh1224 2010-05-28  
不错,帮了大忙。

相关推荐

    java导出txt文件,并以&分隔符每个字段数据

    java导出txt文件,并以&分隔符每个字段数据,全部代码

    java导出TXT和Excel文件

    搭建SSH框架,利用JSP前台调用Action类中的方法,从数据库读出数据,导出TXT文件和Excel文件。TXT文件导出只用到流操作。导出Excel文件利用apache的poi第三方包,可在阿帕奇官网下载(最新版本为3.8,支持office2010...

    Java导出txt文件的方法

    以下将详细介绍两种Java导出txt文件的方法,并提供相关的使用技巧。 方法一: 在这个示例中,代码创建了一个HTTP响应,用于导出一个包含视频列表的txt文件。首先,通过SQL查询获取了视频列表数据。然后,设置HTTP...

    java导出txt文件(202x1124075734).pdf

    总结来说,Java导出TXT文件主要涉及文件操作、流处理和HTTP响应,这两种方法分别针对小数据量和大数据量提供了灵活的选择。在实际项目中,应根据具体需求选择合适的方法,并确保代码的健壮性和性能。

    JAVA导出TXT文件.pdf

    在Java编程中,导出TXT文件通常用于将数据以纯文本格式存储或提供给用户下载。以下是两种常见的方法,从给定的代码片段中详细解释: ### 第一种形式:通过HttpServletResponse直接输出 这种实现方式适用于数据量较...

    java导入txt到数据库 从数据库导出txt

    本文将详述如何使用Java实现TXT文件与数据库之间的数据导入和导出。 首先,我们来了解一下基础概念。TXT文件是一种常见的文本文件格式,通常用于存储纯文本数据,如表格、日志或简单的数据记录。数据库,如MySQL、...

    JAVA导出TXT文件[参考].pdf

    在Java编程中,导出TXT文件是常见的数据输出任务,主要应用于数据备份、报表生成或文件传输等场景。本文将详细解析两种不同的方法来实现这一功能。 ### 方法一:通过HttpServletResponse直接输出 这种方法适用于...

    Java导出Word文件

    从描述中的"Java导出Doc--97--2003.txt"来看,可能涉及的是创建旧版的Word .doc文件。Apache POI同样支持这种格式,但使用的是`HWPFDocument`类。 JODConverter的使用则相对简单,它将转换任务委托给OpenOffice或...

    java导出excel文件.txt

    自己写的java导出页面上的数据到excel表格,可以在控制层调用一下该方法,注释都很清楚,真实可用

    java导出Word修改后缀名

    java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl

    Java将oracle数据导出为txt文件

    可以把oracle中大量数据导出为txt格式,便于在线下载、存储等后续处理。已经测试过,可以执行。

    java导出word、excel、pdf、txt文件,同时兼容office2003和office2007

    4. **导出TXT文件**: TXT文件是最简单的文本格式,可以通过BufferedWriter直接写入文本。例如,创建一个包含“Hello, Text!”的TXT文件: ```java BufferedWriter writer = new BufferedWriter(new FileWriter...

    java 根据参数导出txt文件.rar

    在Java编程语言中,导出TXT文件是一项常见的任务,它涉及到文件I/O操作以及字符串处理。这个"java 根据参数导出txt文件.rar"压缩包文件可能包含了一个名为"EXTtest.java"的源代码文件,该文件展示了如何在Java中根据...

    java 导出excel例子,使用poi

    java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt

    java数据源导出WORD文档(包括图片、表格及文本)

    最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...

    java 导出百万条数据代码

    总之,Java导出百万条数据涉及的关键技术包括分批查询、选择合适的文件格式、利用第三方库如Apache POI以及考虑性能优化策略。提供的jar包和实例代码应包含上述所有步骤,帮助开发者快速实现数据导出功能。

    java导出例子

    下面我们将深入探讨Java导出数据的相关知识点。 1. 文件操作基础 Java 提供了 `java.io` 包,其中包含了一系列类用于处理文件操作,如 `File` 类用于文件和目录的创建、读取、删除等;`FileWriter` 和 `FileReader...

    java导出30万数据量的excel(采用生成多个excel,最后打包zip)

    在Java开发中,处理大数据量的Excel导出是一项常见的任务,尤其当数据量达到数十万条时,单个Excel文件可能会遇到性能瓶颈或格式限制。本项目针对这一问题提出了一种解决方案,即分块生成多个Excel文件,然后将它们...

    Java的Excel导出功能

    "java导出excel文档.txt"和"Java的Excel导出功能.txt"可能是关于该主题的文本说明,提供了更深入的理论和指导。 8. **合集.rar** "合集.rar"可能是一个包含多个示例代码或相关资源的压缩包,解压后可以查看更多的...

    数据导入导出 (java)

    本文将深入探讨如何使用Java进行数据的导入和导出,包括Excel、XML和TXT等常见格式的处理。 首先,我们要理解数据导入导出的核心目的:将数据从一个系统或文件中读取并写入另一个系统或文件。在Java中,这通常涉及...

Global site tag (gtag.js) - Google Analytics