if(fileName.endsWith(".txt")){
response.setContentType("text/plain");
}
FacesContext.getCurrentInstance().responseComplete();
HttpServletResponse response = (HttpServletResponse) FacesContext
.getCurrentInstance().getExternalContext().getResponse();
String finalFileName = new String(fileName.getBytes("ISO-8859-1"),"UTF-8");
response.setHeader("Content-disposition", "attachment; filename="
+ finalFileName);
response.setContentLength(baos.size());
ServletOutputStream sos = response.getOutputStream();
baos.writeTo(sos);
baos.close();
sos.flush();
FacesContext.getCurrentInstance().responseComplete();