2012-09-26 102 views
2

我有一个结果集已获得一些值,我想导出结果集中的数据作为文本文件与保存对话框。使用java保存对话框将文本内容导出到文本文件

如何在java中做到这一点?

我已经完成了以上对excel和java的要求,如下所示。

response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-disposition", "attachment; filename=\"" + reportName + ".xls\"");

response.setHeader("Content-disposition", "attachment; filename=\"" + reportName + ".pdf\""); response.setContentType("application/pdf");

UPDATE:

if(exportTo.equals("text")){ 
      response.setContentType("text/plain"); 
      response.setHeader("Content-disposition", "attachment; filename=\"" + reportName + ".txt\""); 
      try { 

      } catch (Exception e) { 
       // TODO: handle exception 
      } 

     } 
在try块如何设置其是即时拍摄从结果集到一个输出内容本

流和米ake它可用。

回答

2

唯一的区别是这样的:

response.setContentType("text/plain"); 

这里你可以看到一个完整的例子(http://www.mkyong.com/servlet/servlet-code-to-download-text-file-from-website-java/

UPDATE

这是我开发了一个演示,测试和工程非常好:

public class ServletDownloadDemo extends HttpServlet { 
    private static final int BYTES_DOWNLOAD = 1024; 

    public void init(ServletConfig config) throws ServletException { 
     super.init(config); 
    } 

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, 
                         IOException { 
     response.setContentType("text/plain"); 
     response.setHeader("Content-Disposition", "attachment;filename=downloadname.txt"); 

     String s = "Test\n\nText file contects!!"; 
     InputStream input = new ByteArrayInputStream(s.getBytes("UTF8")); 

     int read = 0; 
     byte[] bytes = new byte[BYTES_DOWNLOAD]; 
     OutputStream os = response.getOutputStream(); 

     while ((read = input.read(bytes)) != -1) { 
      os.write(bytes, 0, read); 
     } 
     os.flush(); 
     os.close(); 
    } 
} 

它下载一个名为downloadname.txt的文本文件,其内容为String s

更新2

String s = ""; 
    while (rs.next()) { 
     s += rs.getString("column_name"); 
    } 

    if (exportTo.equals("text")) { 
     response.setContentType("text/plain"); 
     response.setHeader("Content-Disposition", "attachment;filename=downloadname.txt"); 

     try { 
      InputStream input = new ByteArrayInputStream(s.getBytes("UTF8")); 

      int read = 0; 
      byte[] bytes = new byte[BYTES_DOWNLOAD]; 
      OutputStream os = response.getOutputStream(); 

      //data form resultset 

      while ((read = input.read(bytes)) != -1) { 
       os.write(bytes, 0, read); 
      } 
      os.flush(); 
      os.close(); 
     } catch (Exception e) { 
      // TODO: handle exception 
     } 
    } 

你必须填写您的ResultSet,并把你String s需要什么。 就是这样。

+0

我试过但不能帮忙,我的问题是从resultset生成一个文本文件,并使文件可供下载,不需要保存任何地方 –

+1

看到我的更新工作演示 – MaVRoSCy

+0

感谢您的后,但你仍然没有承担我想的问题。 '而不是字符串s我想从resultset'设置文件的内容,那就是我面临的问题。看到我更新的问题 –

相关问题