[RESOLVIDO]Dúvida com gravação de arquivos

3 respostas
rafaelrodrigues1607

Pessoal,

Estou gravando algumas informações em uma linha de um arquivo .txt. Até ai tudo bem. Quando eu inicio a funcionalidade novamente e tento gravar outra linha, ele grava por cima da PRIMEIRA LINHA. Como faço pra ele grave no SEGUNDA LINHA. Segue o método:

public static void gravarEmArquivo(String linha) throws IOException{
        
        FileWriter fileWriter = new FileWriter("C:\\tc\\resultado\\resultado.txt");
        PrintWriter printWriter = new PrintWriter(fileWriter);
        
        printWriter.println(linha);
        printWriter.flush();
        printWriter.close();

    }

3 Respostas

Rodrigo_Sasaki

Rapaz, uma lida na documentação e você matava a charada :smiley:

Tem uma sobrecarga do construtor do FileWriter que recebe um boolean, que se for true, indica que a escrita se inicia ao final do arquivo, e não ao início.

Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.

Acho que isso já te responde. :slight_smile:

Abraço!

Obs: Você pode instanciar tanto enviando um File, quanto uma String com o caminho do arquivo. Existe uma sobrecarga para cada caso.

drsmachado

Você está usando um dos construtores do FileWriter e, justamente, o que não permite “append”.
Pesquise sobre os métodos construtores do FileWriter e identifique qual deles é o que permite append (dica, ele usa um boolean como parâmetro que define se é appendable ou não).

rafaelrodrigues1607
digaoneves:
Rapaz, uma lida na documentação e você matava a charada :D

Tem uma sobrecarga do construtor do FileWriter que recebe um boolean, que se for true, indica que a escrita se inicia ao final do arquivo, e não ao início.

Constructs a FileWriter object given a file name with a boolean indicating whether or not to append the data written.

Acho que isso já te responde. :)

Abraço!

Obs: Você pode instanciar tanto enviando um File, quanto uma String com o caminho do arquivo. Existe uma sobrecarga para cada caso.

Obrigado digaoneves,

era exatamente isso,

Segue o código com uma simples correção:

public static void gravarEmArquivo(String linha) throws IOException{  
          
        FileWriter fileWriter = new FileWriter("C:\\tc\\resultado\\resultado.txt", true);  
        PrintWriter printWriter = new PrintWriter(fileWriter);  
          
        printWriter.println(linha);  
        printWriter.flush();  
        printWriter.close();  
  
    }
Criado 23 de julho de 2012
Ultima resposta 23 de jul. de 2012
Respostas 3
Participantes 3