StringBufferを使用してメモリ内にcsvを生成し、を使用StringBuffer.toString().getBytes()
してバイト配列を取得します。これを出力ストリームに送信できます。
たとえば、GAEでサーブレットを使用する場合:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
StringBuffer buffer = new StringBuffer();
buffer.append("header1, header2, header3\n");
buffer.append("row1column1, row1column2, row1column3\n");
buffer.append("row2column1, row2column2, row2column3\n");
// Add more CSV data to the buffer
byte[] bytes = buffer.toString().getBytes();
// This will suggest a filename for the browser to use
resp.addHeader("Content-Disposition", "attachment; filename=\"myFile.csv\"");
resp.getOutputStream().write(bytes, 0, bytes.length);
}
GAEサーブレットに関する詳細情報
Content-Dispositionに関する詳細情報