如何将 csv 文件转换为 ByteArrayResource
How to convert csv file to ByteArrayResource
我正在处理数据导出。用户可以在 'xls' 和 'csv' 之间选择文件格式。
spring控制器中的导出方法,根据规范,必须return一个ByteArrayResource。
在服务内部 class 我可以毫无问题地将 xls 文件转换为 ByteArrayResource 但它与 csv 文件不同。
//INSIDE SERVICE BUSINESS LOGIC
public ByteArrayResource generateCsvFile(){
FileWriter csvWriter = new FileWriter("myFileName.csv");
//here some logic to build my csv file
/* I AM NOT ABLE TO CONVERT THE FileWriter IN byte[] IN ORDER TO RETURN IT TO THE CONTROLLER
I ALSO TRIED TO CONVERT IT TO FileOutputStream OR ANYTHING THAT CAN USE SOMETHING LIKE
.getByte() or toByte() BUT I'M NOT FINDING OUT ANY SOLUTIONS */
return new ByteArrayResource(/*file converted in byte[]*/);
}
不要使用 任何以 File
开头的。使用 ByteArrayOutputStream
和周围的 OutputStreamWriter
:
ByteArrayOutputStream out = new ByteArrayOutputStream();
try (Writer writer = new OutputStreamWriter(out)) {
// write to writer
}
return new ByteArrayResource(out.toByteArray());
我正在处理数据导出。用户可以在 'xls' 和 'csv' 之间选择文件格式。 spring控制器中的导出方法,根据规范,必须return一个ByteArrayResource。 在服务内部 class 我可以毫无问题地将 xls 文件转换为 ByteArrayResource 但它与 csv 文件不同。
//INSIDE SERVICE BUSINESS LOGIC
public ByteArrayResource generateCsvFile(){
FileWriter csvWriter = new FileWriter("myFileName.csv");
//here some logic to build my csv file
/* I AM NOT ABLE TO CONVERT THE FileWriter IN byte[] IN ORDER TO RETURN IT TO THE CONTROLLER
I ALSO TRIED TO CONVERT IT TO FileOutputStream OR ANYTHING THAT CAN USE SOMETHING LIKE
.getByte() or toByte() BUT I'M NOT FINDING OUT ANY SOLUTIONS */
return new ByteArrayResource(/*file converted in byte[]*/);
}
不要使用 任何以 File
开头的。使用 ByteArrayOutputStream
和周围的 OutputStreamWriter
:
ByteArrayOutputStream out = new ByteArrayOutputStream();
try (Writer writer = new OutputStreamWriter(out)) {
// write to writer
}
return new ByteArrayResource(out.toByteArray());