The most intelligent Java IDE
[Logo] JavaRanch » JavaRanch Saloon
  Search | FAQ | Recent Topics | Hot Topics
Register / Login


Reply Bookmark it! Watch this topic JavaRanch » Forums » Java » I/O and Streams
 
RSS feed
 
New topic
Author

Outputstream the file through http response

Anandha Loganathan
Greenhorn

Joined: Jul 11, 2007
Messages: 13

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.





Anandha Loganathan
Greenhorn

Joined: Jul 11, 2007
Messages: 13

I found solution but Do you have an elegant way to do this code.



>
Greg Charles
Ranch Hand

Joined: Oct 01, 2001
Messages: 901

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

Anandha Loganathan
Greenhorn

Joined: Jul 11, 2007
Messages: 13

I couldn't get you. How do we use OutputStreamWriter?.

If you could provide me the example code then I would appreciate that.

Thanks
Ananda
Greg Charles
Ranch Hand

Joined: Oct 01, 2001
Messages: 901

Oh, I just meant you needed an OutputStreamWriter to fit your interface. Something like this:

>
Anandha Loganathan
Greenhorn

Joined: Jul 11, 2007
Messages: 13

Wrote the code in a better way.

>
Anandha Loganathan
Greenhorn

Joined: Jul 11, 2007
Messages: 13

Greg thanks for your help.

Greg Charles
Ranch Hand

Joined: Oct 01, 2001
Messages: 901

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.
 
 
 
Reply Bookmark it! Watch this topic JavaRanch » Forums » Java » I/O and Streams
 
RSS feed
 
New topic
JProfiler
Get rid of your performance problems and memory leaks!

.