java.io.Writer is at a "higher" level than java.io.OutputStream. Outputstream writes bytes, while Writer write characters.
All the tasks that Writer can take care can also be handled OutputStream.
However, if you are not outputing the characters, you probably are forced to use Outputstream. For instance, if you want your servlet to output an image, you have to use response.getServletOutput(). On the other hand, if you are just creating some HTML pages, you use either the former or response.getWriter().
Hope it helps.
All the tasks that Writer can take care can also be handled OutputStream.
However, if you are not outputing the characters, you probably are forced to use Outputstream. For instance, if you want your servlet to output an image, you have to use response.getServletOutput(). On the other hand, if you are just creating some HTML pages, you use either the former or response.getWriter().
Hope it helps.