Você também pode modificar seu método de escrita de Arquivo da seguinte forma:
publicvoidescreverArquivo(Stringfile,List<List<String>>resposta,anexarboolean)throwsIOException{this.createArquivo(file);Filearquivo=newFile(file);FileOutputStreamoutput=newFileOutputstream(arquivo,anexar);//Se a variável anexar for verdadeira, a stream adicionará o conetúdo no final do arquivo; caso for falsa, o mesmo será sobrescritoBufferedWriterbufferedWriter=newBufferedWriter(newOutputStreamWriter(output));for(List<String>linha:resposta){for(Stringelemento:linha){bufferedWriter.write(linha);}}file.close();output.close();bufferedWriter.close();}
Com isso, você tem um método em que você pode optar por anexar o texto no fim do arquivo ou não.
F
farzac
Boa noite matheuslmota
O porblema 'e que linha 'e uma lista de da erro passar lista no bufferedWriter.write(linha);
At’e agora so consegui gravar linha com
PrintWriter pw = new PrintWriter(f); pw.println(linha);
Porem utilizando PrintWriter nao consigo verificar se o arquivo ja possui informaçao para efetuar a gravaçao no final do arquivo.
Com printwriter, consigo verificar se o arquivo possui informaçao para adicionar o conetúdo no final do arquivo; caso for falsa, o mesmo será sobrescrito ou posso utilizar outro metodo que grava arquivo texto partir de informaçoes de lista ?
Perceba que eu crio uma instância de File e com o método length eu verifico se o mesmo possui algum conteúdo (length retorna o número de bytes do arquivo descrito pelo path ou 0L se o arquivo não existir). FileWriter recebe o objeto file e um boolean para dizer se o arquivo deve ou não ser anexado.
F
farzac
Boa tarde matheuslmota
Muito obrigado mesmo, deu certo.
Apenas uma observação, precisei colocar bufferedWriter.flush(); antes do writer.close();
Valeu mesmo matheuslmota …
M
matheuslmota
farzac:
Boa tarde matheuslmota
Muito obrigado mesmo, deu certo.
Apenas uma observação, precisei colocar bufferedWriter.flush(); antes do writer.close();
Valeu mesmo matheuslmota …
Hum, tinha esquecido do flush. Por nada, precisando dá um grito ae.
F
farzac
Boa tarde matheuslmota
A geração do arquivo .csv deu certo.
Agora estou tendo dificuldade em abri-lo atraves do browser.
Alem das duas configuração abaixo, ha alguma outra configuração que preciso setar para abrir o arquivo.csv por um browser?
Nao esta dando certo, ao inves de abrir a pagina mostrando as informaçoes do arquivo, esta apenas dando a opcao de abrir o arquivo , mas nao esta sendo aberto automaticamente pela pagina.
Eu havia encontrado um exemplo igual ao que voce sugeriu, porem as informaçoes sao abertas num bloco de notas e nao no browser.
M
matheuslmota
Fiz um esboço do código, não cheguei a testar, fiz de cabeça:
try
{BufferedReaderreader=newBufferedReader(newInputStreamReader(newFileInputStream(pathArquivo),Charset.forName("ISO-8859-1")));//Caso o arquivo csv tenha outro encoding, coloque-o no lugar do encoding que eu passsei.BufferedWriterbufferedWriter=newBufferedWriter(response.getOuputStream());StringLine;while((Line=reader.readLine())!=null)
{
bufferedWriter.write(Linha);
}
}catch(IOExceptione)
{e.printStrackTrace();}finally{
reader.close();bufferedWriter.close();
}
É mais ou menos isso.
Lembre-se apenas de mudar o contentType para text/csv
F
farzac
Ola matheuslmota
No navegador firefox ja consegui, porem no navegador chrome e IE nao esta dando certo.
No navegador firefox antes de abrir o arquivo ‘e mostrado uma caixa de mensagem solicitando se desejo salvar o arquivo ou abrir e com que tipo de programa quero abrir o arquivo que no meu caso e’ o Excel.
No navegador Chrome e IE o arquivo 'e aberto automaticamente pelo browser sem solicitar com qual software o arquivo sera aberto ou se sera salvo.
Sera alguma configuracao que preciso fazer no navegador?
Agora eu não entendi. Você quer visualizar o arquivo csv ou abrir ele? Outra coisa, isso tá me cheirando a configuração do navegador.
F
farzac
Eu quero abrir o arquivo gerado, porem quero ter opção de escolher com qual programa irei abrir o arquivo csv gerado.
No IE ja esta mostrando a informação na pagina do browser porem queria abrir numa planilha excel e o IE nao mostra uma caixa com opção de abrir, salvar ou cancelar e é esta caixa de informação que preciso.
Apartir do momento que é disparado o response.sendRedirect("/ProjArquivoTexto/cons_config_exec.csv"), as informações são exibidas no browser do IE e uma caixa com as opções Abrir, Salvar e Cancelar deveria ser exibida.