2012-09-26 104 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'設置文件的內容,那就是我面臨的問題。看到我更新的問題 –

相關問題