Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 导出到CSV文件并在浏览器中打开_Java_Csv_Export To Csv - Fatal编程技术网

Java 导出到CSV文件并在浏览器中打开

Java 导出到CSV文件并在浏览器中打开,java,csv,export-to-csv,Java,Csv,Export To Csv,我遇到了一个问题,我需要将数据导出到.csv文件,但不将文件存储在文件系统中,而是只需在浏览器中打开文件 我编写了以下代码将数据写入.csv文件: FileWriter myWriter = new FileWriter("output.csv"); myWriter.append(EmployeeCode); myWriter.append(','); myWriter.append(Band); myWriter.append('\n'); response.setHeader("Conte

我遇到了一个问题,我需要将数据导出到.csv文件,但不将文件存储在文件系统中,而是只需在浏览器中打开文件

我编写了以下代码将数据写入.csv文件:

FileWriter myWriter = new FileWriter("output.csv");
myWriter.append(EmployeeCode);
myWriter.append(',');
myWriter.append(Band);
myWriter.append('\n');
response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
response.setContentType("application/ms-excel"); 
response.setCharacterEncoding("UTF-8");
我可以打开一个.csv文件,但它是空的。我的数据没有填充到其中。
请说明我做错了什么。

FileWriter
将内容写入
output.csv
文件,而不是响应输出流。你应该这样做:

OutputStream out = response.getOutputStream();
response.setContentType("application/ms-excel"); // or you can use text/csv
response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
try {
    // Write the header line
    OutputStream out = response.getOutputStream();
    String header = "EmployeeCode, Band\n";
    out.write(header.getBytes());
    // Write the content
    String line=new String(EmployeeCode+","+Band+"\n");
    out.write(line.toString().getBytes());
    out.flush();
} catch (Exception e) {
   log.error(e);
}
以获取响应输出流

然后在
out
流中写入内容,类似于:

OutputStream out = response.getOutputStream();
response.setContentType("application/ms-excel"); // or you can use text/csv
response.setHeader("Content-Disposition", "attachment; filename=output.csv"); 
try {
    // Write the header line
    OutputStream out = response.getOutputStream();
    String header = "EmployeeCode, Band\n";
    out.write(header.getBytes());
    // Write the content
    String line=new String(EmployeeCode+","+Band+"\n");
    out.write(line.toString().getBytes());
    out.flush();
} catch (Exception e) {
   log.error(e);
}

在末尾添加
myWriter.flush();myWriter.close()&在写入时在屏幕
System.out.println(EmployeeCode+“=”+波段)上打印相同的数据并查看您是否正在获取数据。法希姆,是的,我正在使用Sys out打印数据。@user179516我们应该关闭文件写入程序以从末尾的流中读取:)您是否可以在末尾添加
myWriter.flush();myWriter.close()然后让我知道你得到了什么?