使用带有保存对话框的 java 将内容导出到文本文件
Posted
技术标签:
【中文标题】使用带有保存对话框的 java 将内容导出到文本文件【英文标题】:export content to a text file using java with save dialog 【发布时间】:2012-09-26 09:29:37 【问题描述】:我有一个包含一些值的结果集,我想将结果集中的数据导出为带有保存对话框的文本文件。
如何在 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");
更新:
if(exportTo.equals("text"))
response.setContentType("text/plain");
response.setHeader("Content-disposition", "attachment; filename=\"" + reportName + ".txt\"");
try
catch (Exception e)
// TODO: handle exception
在这个
在尝试块中如何将结果集中可用的内容设置为输出流并使其可用。
【问题讨论】:
【参考方案1】:唯一的区别是:
response.setContentType("text/plain");
您可以在此处查看完整示例 (http://www.mkyong.com/servlet/servlet-code-to-download-text-file-from-website-java/)
更新
这是我开发和测试过的演示,运行良好:
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
。 就是这样。
【讨论】:
我试过但没用,我的问题是从结果集中生成一个文本文件并让文件可供下载,不需要保存在任何地方 感谢您的帖子,但您仍然没有理解我想的问题。instead of String s i want to set the content of the file from resultset
,这就是我面临的问题。查看我更新的问题以上是关于使用带有保存对话框的 java 将内容导出到文本文件的主要内容,如果未能解决你的问题,请参考以下文章
怎么将一个java程序的结果输出到文本文档中,写一段代码,谢谢
jsp调用java方法导出excel为啥会弹出保存或下载的对话框,调用完之后直接将文件保存到指定路径下即可。
如图显示,求助怎么把excel中列的数据,导出到文本文档行的数据而且每个数据后带分号,谢谢了
如何将导出的confluence空间及所有页面 导入到另一个confluence系统