I have the requirement like this
1) I have to create a file which would contain data from DB
2) and outputstream this file to http response.
eg: if the request is "http://localhost/abcd/product.csv "
then the user should save the file from his browser.
I have never worked on IO object and I have little knowledge about FileWriter, OutputStreams. Not sure If I have to use Objectoutstream for this purpose ?.
I could manage Mime type, buffer and other properties.
I would really appreciate if some one could help me on this.
That looks about right to me. It a good idea to set the content length of the response as well. I've run into trouble with that before, but it was only when sending the response to a non-standard browser. The normal browsers seemed happy enough with the 0 content length.
If you expect the file to be large, you could read it a chunk at a time and write each chunk immediately to the output stream. That avoids having the whole file resident in a byte array. Actually, unless you need the file for other reasons, you could just let the CSVWriter() write it directly to the servlet output stream (well, through a OutputStreamWriter anyway). In that case, you probably won't know the size though, so you have to hope a 0 content length won't freak out your client.
This message was edited 1 time. Last update was at by Greg Charles
You're welcome. IIRC, you don't want to close the servlet output stream though. Your close() call will chain all the way through. If it doesn't cause you any problems though, I guess it's OK.