Spr*_*ing 5 java csv rest opencsv
使用OpenCSV,我可以在光盘上成功创建一个CSV文件,但我真正需要的是允许用户使用下载按钮下载CSV,我不需要保存在磁盘上,只需下载即可.有任何想法吗?
@GET
@Path("/downloadCsv")
public Object downloadCsv() {
CSVWriter writer;
FileWriter wr;
//Or should I use outputstream here?
wr= new FileWriter("MyFile.csv");
writer = new CSVWriter(wr,',');
for (Asset elem: assets) {
writer.writeNext(elem.toStringArray());
}
writer.close();
}
Run Code Online (Sandbox Code Playgroud)
编辑:我不想在光盘上保存/读取文件EVER
tom*_*tom 14
要强制"另存为",您需要在响应中设置内容处置HTTP标头.它应该如下所示:
Content-Disposition: attachment; filename="whatever.csv"
Run Code Online (Sandbox Code Playgroud)
看起来你正在使用JAX-RS.此问题显示如何设置标头.您可以将CSV写入HTTP响应流并在其中设置标头或返回如下Response对象:
return Response.ok(myCsvText).header("Content-Disposition", "attachment; filename=" + fileName).build();
Run Code Online (Sandbox Code Playgroud)
您不需要File在此过程的中间写入对象,因此可以避免写入磁盘.