<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.5</version>
</dependency>
@GetMapping("/csv")
public ResponseEntity<byte[]> csv() throws Exception {
CSVFormat csvFormat = CSVFormat.DEFAULT.withHeader("1", "2", "3");
File tempFile = File.createTempFile("vehicle", ".csv");
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
CSVPrinter csvPrinter = new CSVPrinter(new OutputStreamWriter(fileOutputStream), csvFormat);
for (int i = 0; i < 10; i++) {
csvPrinter.printRecord("q", "w", "e");
}
csvPrinter.flush();
csvPrinter.close();
fileOutputStream.close();
FileInputStream fis = new FileInputStream(tempFile);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
int n;
while ((n = fis.read(b)) != -1)
{
bos.write(b, 0, n);
}
fis.close();
bos.close();
HttpHeaders httpHeaders = new HttpHeaders();
String fileName = new String("測試.csv".getBytes("UTF-8"), "iso-8859-1");
httpHeaders.setContentDispositionFormData("attachment", fileName);
httpHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
ResponseEntity<byte[]> filebyte = new ResponseEntity<byte[]>(bos.toByteArray(), httpHeaders, HttpStatus.CREATED);
return filebyte;
}