Atualizar Arquivo TXT

OLa!

Fiz um methodo para reescrever um arquivo txt, mas gostaria que as informaçoes fossem regravadas e nao adicionadas.

Arquivo antes:
C:\Users\Veronica\Desktop\saudade\uva.jpg<>AMOR<>
C:\Users\Veronica\Desktop\saudade\abraco2.jpg<>BANANA<>
C:\Users\Veronica\Desktop\saudade\saudade.jpg<>UVA<>
C:\Users\Veronica\Desktop\saudade\abraco.jpg<>BANANA<>

Arquivo depois:
C:\Users\Veronica\Desktop\saudade\uva.jpg<>AMOR<>
C:\Users\Veronica\Desktop\saudade\saudade.jpg<>UVA<>
C:\Users\Veronica\Desktop\saudade\abraco.jpg<>BANANA<>

Mas a resposta que tenho eh esta:
C:\Users\Veronica\Desktop\saudade\uva.jpg<>AMOR<>
C:\Users\Veronica\Desktop\saudade\abraco2.jpg<>BANANA<>
C:\Users\Veronica\Desktop\saudade\saudade.jpg<>UVA<>
C:\Users\Veronica\Desktop\saudade\abraco.jpg<>BANANA<>
C:\Users\Veronica\Desktop\saudade\uva.jpg<>AMOR<>
C:\Users\Veronica\Desktop\saudade\saudade.jpg<>UVA<>
C:\Users\Veronica\Desktop\saudade\abraco.jpg<>BANANA<>

Ja coloquei um FALSE no parametro do FileWrite, mas ai o arquivo vem VAZIO.

Onde estou errando???

        public void rename(String novoNome) throws IOException {  
            arquivo = new File(adresse);  
      
            //File dir = new File(adresse);  
            jTextField3.setText(novoNome);  
      
            novoNome = jTextField3.getText().toLowerCase();  
      
            String[] sp = arquivo.getName().split("\\.");  
    //FileReader fr = new FileReader("/Users/Veronica/workspacenetbeans/Visionneuse/mots.txt");    
            fr = new FileReader("/Users/Veronica/workspacenetbeans/Visionneuse/mots.txt");  
    //FileWriter gravar = new FileWriter(new File("/Users/Veronica/workspacenetbeans/Visionneuse/mots.txt"),true);  
    //BufferedWriter gravar = new BufferedWriter(new FileWriter("/Users/Veronica/workspacenetbeans/Visionneuse/mots.txt", true));   
            gravar = new BufferedWriter(new FileWriter("/Users/Veronica/workspacenetbeans/Visionneuse/mots.txt", true));  
    //BufferedReader br = new BufferedReader(fr);     
            br = new BufferedReader(fr);  
            String temp;  
            List<String> lista2 = new ArrayList<String>();  
            while ((temp = br.readLine()) != null) {  
                //Aqui gera a sua "lista". No caso, imprimi cada linha na tela.       
                System.out.println("linhaa TEMP=" + temp);  
                if (!temp.contains(jTextField2.getText())) {  
      
                    lista2.add(temp);  
                    System.out.println("*** NAO ALTERADO ***");  
                }  
            }  
            String qqqq = lista2.toString();  
            System.out.println("***LISTA = " + qqqq);  
      
            gravar.write(qqqq.replace(",", "\n").replace(" ", "").replace("[", "").replace("]", ""));  
      
            /*Duplicite l = new Duplicite("/Users/Veronica/workspacenetbeans/Visionneuse/mots.txt"); 
             l.lerTexto(); 
             System.out.println("CONCLUIDO...");*/  
      
            gravar.close();  
      
            if (!jTextField3.getText().isEmpty()) {  
                if (arquivo.isFile() == true) {  
                    arquivo.renameTo(new File(arquivo.getParent() + "\\" + novoNome + "." + sp[1]));  
                    String nouveau1 = arquivo.getParent() + "\\" + novoNome + "." + sp[1].toString();  
                    jTextField2.setText(nouveau1);  
                    //jTextField2.setText(dir.getAbsolutePath());  
      
                } else {  
                    arquivo.renameTo(new File(arquivo.getParent() + "\\" + novoNome));  
                }  
            } else {  
                jLabel5.setText("Informar Novo Nome");  
            }  
            setChanged();  
            notifyObservers();  
        }

OBRIGADA!

Por favor, não duplique tópicos.