Gerar arquivo texto, JAVAEE

5 respostas
V

Olá pessoal

Eu gostaria de saber se alguém tem algum tutorial explicando como poderiar fazer minha servlet gerar um arquivo texto.

Por exemplo, desejo enviar alguns dados de um formulário para uma servlet e essa servlet gerar o arquivo NOME.TXT.

Obrigado pela Atenção e conto com vocês.

5 Respostas

E

Da mesma maneira que uma aplicação JavaSE gera um arquivo-texto (procure por java.io.FileWriter).

V

eu fiz igual ao javaSE, mas não está funcionando no servlet ele não gera o arquivo, por acaso tens algum link em que me mostre. Eu fiz duas formas e não deu certo.

Por exemplo eu fiz desse jeito

String caminhoArquivo = getServletContext().getRealPath("/WEB-INF") +
System.getProperty(“file.separator”) + “TESTE_NOMES.TXT”;

FileWriter writer = new FileWriter(caminhoArquivo, true);
        PrintWriter arqLog = new PrintWriter(writer, true);

        SimpleDateFormat formataData = new SimpleDateFormat();
        formataData.applyPattern("dd/MM/yyyy 'às' HH:mm:ss");
        String dataHoraAtuais = formataData.format(new Date(System.currentTimeMillis()));

        arqLog.println("Nome: "+request.getParameter("nome")+"  email: [email removido] Data/Hora: " + dataHoraAtuais);

        arqLog.close();
        writer.close();

mas não gerou o arquivo

dudaskank

Se for apenas log, o melhor seria usar alguma biblioteca como log4j.

No caso de arquivos de texto em geral, nesse caso especificamente, o que acontece? Alguma exceção? Tente imprimir o conteúdo de getServletContext().getRealPath("/WEB-INF") pra ver o que tem lá… ou tente gravar um na raiz, ou no diretório temporário…

V

já consegui solucionar meu problema
Abaixo segue o codigo que funciona e talvez ajude outras pessoas que talvez passem pelo mesmo problema

System.out.println("Antes de fazer qualquer coisa "+request.getParameter("nome"));//MEU DEBUGADOR PARA NÃO ME PERDER

            String caminho = getServletContext().getRealPath("/") + "TESTE_NOMES.TXT";
            System.out.println("Caminho: "+caminho);

            String texto = request.getParameter("nome").toString();
            DataOutputStream out = new DataOutputStream( new BufferedOutputStream(new FileOutputStream(caminho)));
            out.writeBytes(texto);
            out.flush();
            out.close();
            System.out.println("Depois de tudo");//MEU DEBUGADOR PARA NÃO ME PERDER

[color=red]Atenção:
O meu problema também era que eu não estava achando o meu endereço do arquivo, o local onde estava sendo gravado o arquivo, mas achei ele fica nessa pasta
…caminho físico do projeto…/pasta do projeto/build/web/TESTE_NOMES.TXT
[/color]

Obrigado a todos que colaboraram.

dmalucelli

Olá.
Estou enfrentando uma situação peculiar ao que foi citado acima em um ambiente web:
Na geração do arquivo texto seria necessário que o usuário web selecione onde o arquivo txt SERÁ criado(muito provavelmente num caminho da sua própria estação de trabalho).

Exemplificando como eu faria com java SE utilizando showSaveDialog de JFileChoser:

        JFileChooser fc = new JFileChooser();
        fc.setSelectedFile(new java.io.File(sPath));
        FileFilter filter = new  FileNameExtensionFilter("Arquivos Texto (*.txt)", "txt") ;
        fc.addChoosableFileFilter(filter);

        int iReturnVal = fc.showSaveDialog(null);
        if (iReturnVal == JFileChooser.APPROVE_OPTION) {
        ...} 

  ou seja preciso que o usuário escolha um caminho e nome do arquivo txt previamente a criação deste.

 Agradeço antecipadamente a quem  tenha enfrentado tal dificuldade e puder repassar possíveis soluções...
Criado 24 de fevereiro de 2010
Ultima resposta 29 de mar. de 2011
Respostas 5
Participantes 4