Download de Arquivos + Java + jsf

FacesContext context = FacesContext.getCurrentInstance();
 	ResourceBundle bundle = ResourceBundle.getBundle("resources.Messages",context.getViewRoot().getLocale());
	
	HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();
	response.setContentType("application/octet-stream");
	response.setHeader("Content-disposition","attachment; filename=\"contratos.txt\"");
	
	response.setHeader("Content-disposition","attachment; filename=\"contratos.txt\"");

	try {
        OutputStream out = new BufferedOutputStream(response.getOutputStream());
		byte[] arquivo = loadFile("C:\\teste.txt").toByteArray();;

		out.write(arquivo);
	} catch (Exception e) {
		e.printStackTrace();
	}
	return "sucess";

private java.io.ByteArrayOutputStream loadFile(String filePath) throws IOException {
java.io.ByteArrayOutputStream out = new java.io.ByteArrayOutputStream();

	InputStream is = new FileInputStream(filePath);
	
	for (byte[] b = new byte[is.available()]; is.read(b, 0, is.available()) > 0 ; ){
		out.write ( b );
	}

	return out;
}

alguem sabe o q esta errado?