Dúvida ArrayList em arquivo

Galera é o seguinte. Eu tenho um ArrayList de objeto do tipo Fornecedores que é salvo em arquivo.

[code] public class Fornecedor{
public Fornecedor(){
al_produtos_for = new ArrayList();
}
public void addProduto(Produto produto){
al_produtos_for.add(produto);

}

public Produto getProduto(int index){
    return al_produtos_for.get(index);
}

private int codigo;
private String nome;
private String end;
public static ArrayList<Produto> al_produtos_for;

}}[/code]

Em tempo de execução os produtos são adicionados normalmente no fornecedor, porém quando carrego o programa de novo da problema,

Não faço a mínima ideia de como salvar ou carregar esse arraylist em arquivo. Fiz um metodo para tentar salvar, não sei se ta correto:

public static boolean setProdutoNoFornecedor(Produto produto){ try{ int id_for = produto_cadastro_jf.fornecedor_tabela.getSelectedRow(); //id recebe o indice do fornecedor selecionado na tabela no frame produto_cadastro_jf Inicializar.al_fornecedores.get(id_for).addProduto(produto); //Vai até o array de fornecedores e adicionar o produto no arraylist Salvar.ArquivoFornecedor(); //"Salvar" é uma classe com o metodo ArquivoFornecedor(), esse metodo esta explicado mais embaixo return true; } catch (Exception e){ e.printStackTrace(); return false; } }

public static boolean ArquivoFornecedor(){ if((Arquivo.salvar(Inicializar.al_fornecedores, "fornecedores.dat")) == false) //Arquivo é a classe padrao que eu uso pra salvar arraylists em arquivo. return false; return true; }

Se alguem tiver uma ideia melhor de como fazer isso, tou precisando muito.

Resumindo, queria uma ideia de como salvar varios produtos em uma estrutura dinamica dentro do fornecedor.

valeu

informa a exceção que deu.