Armazenar arquivos em um txt

public static void cadastroprodutos(){                   // ##########Função###########  

[color=red] try{
File fid = new File (“e.txt”);
RandomAccessFile arquivo = new RandomAccessFile(fid,“rw”);[/color]

        		for(i=0;i<posicaoVetor+1;i++){
        	 String aux0 = JOptionPane.showInputDialog("Insira o Código do produto");  
             variavelsuportecodigo = Integer.parseInt(aux0);
             produtos[posicaoVetor].codigo = variavelsuportecodigo;  
             [color=blue]boolean codigorepetido = false;
         	    for(i=0;i<posicaoVetor;i++){
         		if(variavelsuportecodigo == produtos[i].codigo){                
         	      	   codigorepetido = true;                       
         	          break; }}
         	   if (codigorepetido)                {
         	   JOptionPane.showMessageDialog(null, "Código repetido, por favor digite outro. ");[/color]
         	   MENU();}
               String aux1 = JOptionPane.showInputDialog("Insira o preço de venda do produto , código: " +produtos[posicaoVetor].codigo);                                       
               [posicaoVetor].preco_venda= Float.parseFloat(aux1);                                                                                       
               String aux2 = JOptionPane.showInputDialog("Insira o preço de compra do produto , código: " +produtos[posicaoVetor].codigo);                     
               produtos[posicaoVetor].preco_compra= Float.parseFloat(aux2);                                                                                         
               String aux3 = JOptionPane.showInputDialog("Insira a quantidade de produtos em estoque do produto , codigo: " +produtos[posicaoVetor].codigo);                        produtos[posicaoVetor].quantidade_estoque= Integer.parseInt(aux3);                                                                                   
               produtos[posicaoVetor].descricao= JOptionPane.showInputDialog("Insira a descrição do produto , codigo : " +produtos[posicaoVetor].codigo);                

[color=red] arquivo.writeInt (produtos[posicaoVetor].codigo);
arquivo.writeDouble(produtos[posicaoVetor].preco_venda);
arquivo.writeDouble(produtos[posicaoVetor].preco_compra);
arquivo.writeChars(produtos[posicaoVetor].descricao);[/color]
posicaoVetor++;
[color=red]
}
arquivo.close();}
catch (Exception e){
JOptionPane.showMessageDialog(null,“Erro de gravação”);
[/color]
}

    }

Essa função eu fiz para poder fazer um cadastro ( codigo,preço de venda e compra, descrição,estoque)
a parte azul é pra caso digite codigo igual a outro digitado , o programa avise…

A parte vermelha é que ta o problema … ela era pra gerar um arquivo txt para poder ser acessado novamente quando o programa fechasse e abrisse. porem nao funciona.

Como faço pra gerar um txt que quando o programa seja fechado e aberto eu tenha esses dados no programa pra editar ?

OBRIGADO !