当前位置: 首页 > 面试题库 >

在Java Servlet中创建并下载CSV文件

陶宏浚
2023-03-14
问题内容

我正在研究Java ExtJS应用程序,需要在其中创建和下载CSV文件。

  • 单击按钮后,我希望将CSV文件下载到客户端计算机上。
  • 在按钮侦听器上,我正在使用AJAX调用servlet。在那里,我正在创建一个CSV文件。

我不希望将CSV文件保存在服务器中。我希望使用下载选项 动态 创建文件。我希望将文件的内容创建为字符串,然后将其作为 文件
提供,然后在浏览器中以下载模式打开该 文件 (这是我用其他语言实现的,但是不确定如何用Java实现) )。

这是我的代码,仅用于创建CSV文件,但是如果我只能将文件下载为CSV,我真的不想创建或保存CSV文件。

public String createCSV() {
    try {
        String filename = "c:\\test.csv";
        FileWriter fw = new FileWriter(filename);
        fw.append("XXXX");
        fw.append(',');
        fw.append("YYYY");
        fw.append(',');
        fw.append("ZZZZ");
        fw.append(',');
        fw.append("AAAA");
        fw.append(',');
        fw.append("BBBB");
        fw.append('\n');

        CSVResult.close();

        return "Csv file Successfully created";
    } catch(Exception e) {
        return e.toString();
    }
}

谁可以帮我这个事。

谢谢


问题答案:

我得到了解决方案,并将其发布在下面。

public void doGet(HttpServletRequest request, HttpServletResponse response)
{
    response.setContentType("text/csv");
    response.setHeader("Content-Disposition", "attachment; filename=\"userDirectory.csv\"");
    try
    {
        OutputStream outputStream = response.getOutputStream();
        String outputResult = "xxxx, yyyy, zzzz, aaaa, bbbb, ccccc, dddd, eeee, ffff, gggg\n";
        outputStream.write(outputResult.getBytes());
        outputStream.flush();
        outputStream.close();
    }
    catch(Exception e)
    {
        System.out.println(e.toString());
    }
}

在这里,我们不需要在服务器中保存/存储文件。

谢谢



 类似资料:
  • 我试图允许用户下载一个CSV文件,其中包含由其操作定义的数据。该文件不存在,它是动态创建的。我怎么能在烧瓶里做这个?

  • 问题内容: 我试图允许用户下载包含其操作定义的数据的CSV文件。该文件不存在,它是动态创建的。如何在Flask中做到这一点? 问题答案: 使用生成数据并传输响应。使用写入内存缓冲区,而不是生成中间文件。 如果该generate函数需要从current中获取信息request,则应使用修饰stream_with_context,否则您将收到“在外部请求上下文中工作”错误。其他所有内容保持不变。

  • 我试图通过在本地服务器上创建zip文件来下载a 2文件。文件是以zip格式下载的,但当我试图解压缩它时。它给出了一个错误:找不到中央目录签名的结尾。要么该文件不是zip文件,要么它构成了多部分存档的一个磁盘。在后一种情况下,中心目录和zip文件注释将在该存档的最后一个磁盘上找到。 下面的代码我使用这个: 我检查了传递到函数中的所有变量的值,都很好。所以请看这个。提前谢谢。

  • 问题内容: 我是一个新手程序员,我搜索了很多有关我的问题的内容,但是找不到关于此的有用的解决方案或教程。 我的目标是我有一个PHP数组,并且数组元素显示在页面上的列表中。 我想添加一个选项,以便用户如果需要,他/她可以创建带有数组元素的CSV文件并下载。 我不知道该怎么做。我也搜索了很多。但尚未找到任何有用的资源。 请为我提供一些教程或解决方案或建议以自己实施。由于我是新手,请提供易于实施的解决方

  • 问题内容: 我对Selenium WebDriver和Firefox有问题。我想在对话框窗口中下载没有确认的csv文件,并且我有如下代码: 但似乎不起作用。我尝试了与 browser.helperApps.neverAsk.saveToDisk的* 许多组合 * 要么 但没有任何区别,Firefox也不会自动下载。我该如何解决? 问题答案: 有时内容类型与您期望的不一样使用 HttpFox Fir

  • 总结:<代码>响应 我正在为下载按钮编写一个控制器,该按钮将使用从另一个依赖项检索的数据生成CSV。 作为测试,我还尝试将主体设置为<代码>。正文(“案例ID,受让人”。getBytes(StandardCharsets.UTF\u 8))。这应等同于https://stackoverflow.com/a/34508533/10327093 在这两种情况下,我得到的回应都是Base64。示例(缩短