Abir tela de download para arquivo xml

Oi pessoal,

estou criando um arquivo xml com alguns dados e já consegui q ele gravasse o arquivo no disco:

    XMLOutputter xout = new XMLOutputter();

        try {

            FileWriter arquivo = new FileWriter(
                    new File("/home/usuario/arquivo.kml"));

            xout.output(documento, arquivo);

        } catch (IOException e) {
        }

mas gostaria q em vez de salvar o arquivo, fosse mostrado a tela de download no navegador.

Pesquisa aqui no GUJ ou google como fazer download de arquivo.

Ou vc já pesquisou e está com erro no seu código?

Já pesquisei e encontrei alguns exemplos, o problema é q já tenho q ter o arquivo pronto; no código acima postado, o arquivo só será gerado na linha

xout.output(documento, arquivo);

e já é gravado.

O meu problema é pegar o conteudo do xml - Document documento = new Document(kml); - gravar no arquivo e ai passar para o response ou outra coisa, já tentei assim:

        FacesContext context = FacesContext.getCurrentInstance();
        HttpServletResponse response = (HttpServletResponse) context.getExternalContext().getResponse();
        response.addHeader("Content-Disposition",
                "attachment; filename=coordenadas.kml");

        response.setContentType("application/download");
        ServletOutputStream outStream = response.getOutputStream();

        try {
            outStream.print(documento.toString());
            outStream.flush();
        } finally {
            outStream.close();
        }

até q mostrou a tela de download, mas o conteúdo do arquivo não é o esperado.