Ajuda com Gravaçao de arquivo!

Ola estou tendo dificuldades em gravar em arquivo os elementos de uma Lista Duplamente encadeada que eu criei ,alguém poderia me ajudar para ver onde estou errando segue o código que desenvolvi ate agora meu problema esta na condição do foreach não consigo arruma-la .

tenho que gravar no seguinte padrão : Deus da Silva#33559655#deus@gmail.com .

[code] public static void grava(Lista no) throws Exception {
FileOutputStream stream = new FileOutputStream(“C:\Users\CrisVilela\Documents\NetBeansProjects\ESDI\src\pessoa.txt”);

    for (DadosPessoa pessoa :  ) {
        stream.write(
                (pessoa.getNome() + "#" + pessoa.getTelefone() + "#" + pessoa.getEmail() + "#").getBytes());
    }
    stream.flush();
    stream.close();
}[/code]

abaixo codigo da minha Lista.

[code]package ListaDencadeda;

public class Lista {

private No inicio;
private No fim;

/*Quando ele chamar o construtor para reservar espa�o na mem�ria para a lista,

  • evocar� junto o m�todo inicializa() para estabelecer uma lista vazia,
  • pois quando isso ocorrer, ele atribuir� nulo ao inicio e ao fim (que caracteriza uma lista vazia) e como em JAVA,
  • se voc� perder a refer�ncia do �ndice dos demais elementos (caso existam)
  • o garbage collector se encarregar� de destruir esses elementos.*/
public Lista(){
    inicializa(); 
}

private void inicializa(){
inicio = null;
fim = null;
}

public void exibeLista(){
No aux;
aux = inicio;

    while(aux!=null){
        System.out.println(String.format(" Nome :%S \n Telefone : %s \n Email : %s ",
        	aux.getInfo().getNome(),aux.getInfo().getTelefone(),aux.getInfo().getEmail()));
            aux = aux.getProx();
        
    }

}

public void insereNoFim(DadosPessoa info){

  No lista = new No (inicio,null,info);
  
    if(inicio == null){
        inicio = fim = lista;
    } else {
        fim.setProx(lista);
        fim = lista;
    }

}

}[/code]