我正在使用spring 4 web-mvc创建一个rest api。我有一个巨大的csv文件,我想要流。在python中,我可以做到非常简单:
from flask import Response
@app.route('/large.csv')
def generate_large_csv():
def generate():
for row in iter_all_rows():
yield ','.join(row) + '\n'
return Response(generate(), mimetype='text/csv')
Spring 4中的等价物是什么?这可能吗?
答案 0 :(得分:1)
以下是伪代码作为您的提示:
@RequestMapping(value = "/large.csv", method = GET, produces = "text/csv")
@ResponseStatus(value = HttpStatus.OK)
public void streamLargeCSV(OutputStream output) {
InputStream is = new FileInputStream(csvFile);
int read=0;
byte[] bytes = new byte[1024 * 4]; //size per read
while((read = is.read(bytes))!= -1){
output.write(bytes, 0, read);
output.flush(); //may change flush rate to more rows/flush
}
output.close()
}