[Help] Exportar dados para arquivo

Pessoal, tenho um projeto aq onde pego alguns dados pessoais e exporto para um arquivo .csv
Utilizo a API JavaCSV para criar esse arquivo e funciona muito bem, só que este arquivo é salvo em um diretório que eu especifiquei no código:


 CsvWriter writer = new CsvWriter("/home/user/Desktop/data.csv", ',', Charset.forName("ISO-8859-1") );

Preciso fazer com que este arquivo seja gerado e devolvido para o usuário salvá-lo em uma pasta a sua escolha.
COmo se fosse um LINK para download!

É um projeto web, estou utilizando JSF e tomahawk.

Não tenho idéia de como fazer isso!
Alguém tem alguma indicação?
:smiley:

vc precisa salvar esse arquivo dentro do seu web context, na sequencia criar um link na sua pagina que aponte para esse arquivo.

abraços.

OBrigada! :smiley:
mas … Vc poderia me dar um exemplo de como fazer isso…
É que realmente não tenho idéias… :?
Está funcionando, mas não do jeito que deve ser…

Oi pessoal!
Por favor me ajudEEEM!
encontrei o seguinte código:

[code]

public String button1_action() {
String filename = “foo.pdf”; // Filename suggested in browser Save As dialog
String contentType = “application/pdf”; // For dialog, try application/x-download
byte[] data = ; // File contents to be written. Sorry, YOU have to do this part!

FacesContext fc = FacesContext.getCurrentInstance();
HttpServletResponse response = (HttpServletResponse)fc.getExternalContext().getResponse();
response.setHeader(“Content-disposition”, “attachment; filename=” + filename);
response.setContentLength(data.length);
response.setContentType(contentType);
ServletOutputStream out = response.getOutputStream();
out.write(data);
fc.responseComplete();

return null;
}[/code]

Mas não consigo integrar no meu projeto por que o http://javacsv.sourceforge.net/index.html?com/csvreader/CsvWriter.html , simplesmente recebe um OutputStream e escreve os dados nele, mas não aceita um ServletOutputStream e nem possui métodos para retornar o arquivo ou bytes de dados.
O que posso fazer?
Será que terei que usar outra API?
Me ajuuuuuudeeeM!
Agradeço sugestões!

:smiley:

Dei uma olhada nesse DisplayTag, mas não entendi mto bem…
Sei que não vou precisar exibir os dados a serem exportados, apenas clicar, gerar o arquivo e devolvê-lo!
aBRaço!
:slight_smile:

? :cry:

Se o método do seu CsvWriter recebe um OutputStream, então ele aceita sim um ServletOutputStream, pois essa classe herda de OutputStream.

Então, você poderia simplesmente passar o response.getOutputStream para o método do CsvWriter.