Criar arquivo.txt de um jTable

Bom dia galerinha,

Estou iniciando em java, e estou com uma duvida que para mtos pode ser simples. Seguinte:

Criei uma inteface com entrada de dados que são jogados para um Jtable.

Ao jogar para a Jtable ela tbem cria(salva) um arquivo.txt.

Ao consultar esse arquivo.txt ela preenche o jTable.

Ai vem a duvida:
Se eu incluir algum valor a tabela, ela só salva o novo valor.

Raciocinei um pouco e decidi não salvar o arquivo.txt direto dos campos de texto, mas sim do Jtable, assim eu poderia consultar o arquivo salvo, alterar, incluir, etc…

mas como poderei fazer isso??

abaixo segue o metodo que estou usando.


     private void JBgravarActionPerformed(java.awt.event.ActionEvent evt) {                                         
        

        DefaultTableModel dtm = (DefaultTableModel) jTable1.getModel();
        Object campos[] = {JTFcodigo.getText(), JCBtipo.getSelectedItem(), JTFdata.getText(), JTFcompra.getText(), JTFvenda.getText(), JLtotal.getText()};
        dtm.addRow(campos);

     
        // os dados são armazenados no arquivo direto na digitação. É necessario que ele seja jogado para o Jtable e o Jtable seja salvo.

        int cod = Integer.parseInt(JTFcodigo.getText());
        String tipo = (String) JCBtipo.getSelectedItem();
        String data = JTFdata.getText();
        double compra = Double.parseDouble(JTFcompra.getText());
        double venda = Double.parseDouble(JTFvenda.getText());
        double total = Double.parseDouble(JLtotal.getText());

        caixa.add(new Caixa(cod, tipo, data, compra, venda, total));
        
        gravaArquivo();
        
        JOptionPane.showMessageDialog(null, "Salvo com sucesso!");
        limpar();

    }                                     


       public void gravaArquivo(){
        try{
            ObjectOutputStream arquivoGravar = new ObjectOutputStream (new FileOutputStream(new File("arquivo.txt")));
            arquivoGravar.writeObject(caixa);
            
        } catch(IOException erro){
            JOptionPane.showMessageDialog(null, "Erro ao gravar" + erro);
        }
    }