Gerando Arquivo txt [resolvido]

5 respostas
K

Bom dia pessoal, estou com um problema na hora de gerar um arquivo txt. Estou conseguindo gerar ele normalmente porém eu preciso da opção de sobrescrever o antigo e não adicionar o texto ao arquivo que já possuo, segue abaixo um trecho do meu código.

public void geraTxtCompra(){
        String conteudo = "teste";
        fc = new JFileChooser();
        try{   
             fc.showSaveDialog(this);
             File diretorio = fc.getCurrentDirectory();
             String caminho = diretorio.getPath();
             File f = fc.getSelectedFile();
             conteudo += "\n\r"; // criando nova linha e recuo no arquivo            
             FileWriter writer = new FileWriter(new File(caminho+"/"+f.getName()+".txt"),true); 
             writer.write(conteudo);
             writer.append("\nnovoteste");
             writer.close();
             JOptionPane.showMessageDialog(null,"Arquivo gravado com sucesso","Concluído",JOptionPane.INFORMATION_MESSAGE);   
      }   
      // em caso de erro apreenta mensagem abaixo   
      catch(Exception e){   
         JOptionPane.showMessageDialog(null,e.getMessage(),"Atenção",JOptionPane.WARNING_MESSAGE);   
      } 
        
    }

Ainda sou novato nesta parte de classes file i.o, gostaria que me dessem uma mão nesse código.

5 Respostas

Naruffy

Use a classe PrintWriter para escrever no arquivo

FileWriter writer = new FileWriter(new File(caminho+"/"+f.getName()+".txt"),true);
             PrintWriter out = new PrintWriter(writer);
             out.println(conteudo);
             out.println("novoteste");
             out.close();

[]s

K

Acabei de testar, ainda continua adicionando o conteudo, sem apagar o anterior quando eu gero um novo arquivo com o mesmo nome. Eu preciso que ele sobrescreva o anterior se eu colocar o mesmo nome.

E

Tire o “true” do construtor de FileWriter.

Referência: java.io.FileWriter

Foxlol

Tira o TRUE do construtor e coloca FALSE.

FileWriter writer = new FileWriter(new File(caminho+"/"+f.getName()+".txt"), false);

http://java.sun.com/j2se/1.5.0/docs/api/java/io/FileWriter.html

Flw

PS: Bah jah responderam antes…e verdade, nem precisa colocar false, eh soh nao colocar :stuck_out_tongue:

K

Vlwww, deu certinho…

Criado 13 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 5
Participantes 4