There is a sample application in our
codebarn that shows how to stream files to a browser from a
servlet.
It uses getResourceAsStream which depends on the file being inside the webapp's directory structure.
If your files reside outside the directory structure, you'll want to use a FileReader to read the file instead.
Also look at the Content-Disposition HTTP header. In the example the header uses the "inline" attribute. If you want the user to be presented with a "Save As" dialog box you'll want to change that to "attachment"
In any case, that code should give you a good jump start on writing this yourself.
http://faq.javaranch.com/java/CodeBarnSimpleStream