Arraylist em arquivo

Olá pessoal. Estou com problemas para salvar meu arraylist em um arquivo txt ou qualquer outro formato no hd.
Tenho o seguinte codigo:
Método gravar:

[code] public void Gravar () {

    try {
    FileOutputStream arquivo = new FileOutputStream("arquivo.txt")  ;
    ObjectOutputStream out = new ObjectOutputStream(arquivo);
    out.writeObject(bean);
    JOptionPane.showMessageDialog(this, "Arquivo salvo com sucesso!");
    }
    catch (IOException e) {
        JOptionPane.showMessageDialog(this, "Erro ao gravar arquivo!");
    }
    
} [/code]

Após pegar todos os dados dos campos e armazenar em um bean, eu chamo este método:

[code] private void ButtonSalvarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
bean = new BeanLista();

    bean.setTarefa(AreaTarefa.getText());
    bean.setHorario(FieldHorario.getText());
    bean.setData(FieldData.getText());
    bean.setLocal(FieldLocal.getText());
    bean.setContato(FieldContato.getText());
    bean.setTelefone(FieldTelefone.getText());
    
    listaTarefas.add(bean);
    
    limparCampos();
    
    Gravar();
}    [/code]

Construtor que chama o Arraylist:

public Tarefas() { initComponents(); listaTarefas = new ArrayList<BeanTarefas>(); }

O problema é que na hora da gravaçao, ao invés de armazenar todos os registros, o programa sobrescreve o arquivo a cada novo registro.
Alguém poderia me ajudar?
Obrigado!!

passa true no construtor para ele adicionar no final do arquivo.

new FileOutputStream(“arquivo.txt”, true);

[]'s

Muito Obrigado Mauricio!!! Não acredito que era só isso… obrigado mesmo!

Estou com problemas agora em meu método ler… ele retorna a mensagem “invalid type code: AC” em IOException assim que chamo o método. depois disso consigo ler apenas o primeiro registro de minha Arraylist. Como será que resolvo isto?
Segue código de meu método Ler:

public void Ler () { try { //abre o arquivo FileInputStream arquivo = new FileInputStream("agenda.txt"); ObjectInputStream in = new ObjectInputStream(arquivo); while ((bean = (BeanAgenda)in.readObject()) != null); listacompromissos.add(bean); in.close(); } catch (FileNotFoundException fn) { JOptionPane.showMessageDialog(this, "Erro encontrar o arquivo!"); } catch(IOException ioe) { JOptionPane.showMessageDialog(this, ioe.getMessage()); } catch(ClassNotFoundException cnfe) { JOptionPane.showMessageDialog(this, "Erro ao abrir a classe!"); } }

Agradeço se puderem me ajudar mais uma vez!
Obrigado!

public void Ler () { try { //abre o arquivo FileInputStream arquivo = new FileInputStream("agenda.txt"); ObjectInputStream in = new ObjectInputStream(arquivo); while ((bean = (BeanAgenda)in.readObject()) != null) { listacompromissos.add(bean); } in.close(); } catch (FileNotFoundException fn) { JOptionPane.showMessageDialog(this, "Erro encontrar o arquivo!"); } catch(IOException ioe) { JOptionPane.showMessageDialog(this, ioe.getMessage()); } catch(ClassNotFoundException cnfe) { JOptionPane.showMessageDialog(this, "Erro ao abrir a classe!"); } }

Seu while estava com ; no final.

Fala Cyber!
Infelizmente não é isso ;/
devo ter colocado o ponto e virgula sem querer ao regiditar esta linha…
nao funcionou mesmo… mas obrigado pela ajuda!
Alguém tem mais alguma sugestão?

Ninguém para me ajudar? :frowning: