csvファイルのダウンロードに以下のコードを使用しました
InputStream is = new ByteArrayInputStream(csv.toString().getBytes());
IOUtils.copy(is, response.getOutputStream());
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment; filename=mycsvfile.csv");
response.flushBuffer();
is.close();
数十のレコードでうまくいきました。*.csv ファイルをダウンロードできました。ただし、何百ものレコードに対してファイル拡張子のない text/plain を返します。