java - 如何使用java下载在本地计算机中编写的csv文件
问题描述
我试图在创建它后下载一个 csv 文件。该文件正在写入下载文件夹中,但用户无法将其视为下载文件。我正在使用以下代码。我想在写完这个文件后应该显示为下载的文件。
try (
PrintWriter writer = new PrintWriter(new File(System.getProperty("user.home")+"\\Downloads\\downloadCSV.csv")))
{
StringBuilder sb = new StringBuilder();
sb.append("RollNo,");
sb.append("Name,");
sb.append("Marks,");
sb.append('\n');
sb.append("4053,");
sb.append("rahul,");
sb.append("55,");
sb.append('\n');
sb.append("4055,");
sb.append("anil,");
sb.append("56,");
writer.write(sb.toString());
System.out.println("done!");
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
解决方案
基本上据我了解,您需要将弹簧控制器
Content-Disposition
标头作为响应标头的一部分放入。
这是有关该标头 Content-Disposition的更多信息以及如何包装在spring 控制器中的方法。
基本上使用该标题,您可以强制浏览器下载(或查看)文件。您可能需要再设置一个附加标头Content-Type
。
推荐阅读
- c# - 用于构建 .NET 4.6.1 项目的带有 MSBuild 的 Windows 2016 服务器
- google-apps-script - 如何修复“错误:请指定有效的电子表格 URL。”
- python - 如何使用 numpy 结合给定规则的 2 个矩阵?
- swift - 为什么我可以创建一个与函数参数同名的变量?
- .net - 在带有 AWS 的 .Net 中,我如何更改 IAM 角色?
- node.js - 与 DynamoDB 的连接在“扫描”中挂起?
- laravel - Mime 类型验证在 Laravel 5.7 中不起作用
- python-3.x - Pandas 将值与前几行的平均值进行比较
- swift - typealias 可以编码吗?
- r - R 错误地将数值识别为日期并将其转换为数值会导致较大的负值