[RESOLVIDO] list imprimi nada depois de ser serializado

Boa noite galera, to com problema em um arraylist que apos ser serializado ele imprimi os dados certinhos dentro do metodo que le o arquivo, porem o mesmo list imprimi nada em qualquer outro lugar da classe, segue abaixo as classes:

import java.io.Serializable;
import java.util.ArrayList;

public class Cadastro implements Serializable, Comparable<Cadastro>
{

	String nome;
	String endereco;

	public Cadastro(){
		
	}
	public Cadastro (String nome, String endereco)
	{
		this.nome = nome;
		this.endereco = endereco;
	} 

	public String toString()
	{
		return nome + " - "+ endereco;
	}

	
	public int compareTo(Cadastro o) {
		
		return this.nome.compareTo(o.nome);
	}
  
}

classe com os metodos de grava e le em arquivo txt, porem o list so funciona dentro do metodo LER

import java.io.*;

import java.util.*;

public class OpcaoMenu
{
	String nome;
	String endereco;
	ArrayList <Cadastro> agenda = new ArrayList <Cadastro> ();
	
	Scanner input = new Scanner(System.in);
	
	public void gravar()
	{
		try
		{
			FileOutputStream fos=new FileOutputStream("Cadastro.txt");
			ObjectOutputStream os=new ObjectOutputStream(fos);
			
			os.writeObject(agenda);
			os.close();
		}catch(Exception e){
			System.out.println("deu erro");
		}

	}
	
	public void ler()
	{
		try{
			FileInputStream fis=new FileInputStream("Cadastro.txt");
			ObjectInputStream ois=new ObjectInputStream(fis);
			agenda=(ArrayList<Cadastro>)ois.readObject();
			
			for(Cadastro cad:agenda)
				System.out.println(cad);
		}catch(Exception e){
			System.out.println("Deu erro");
		}
	}

	public void incluir()
	{
		System.out.println ("\n1 - incluir \n");

		System.out.println ("Digite seu Nome? \n");
		nome = input.nextLine();
		System.out.println ("Digite seu endereco? \n");
		endereco = input.nextLine();
		
		agenda.add(new Cadastro(nome, endereco));

		System.out.println("Cadastro efetuado com sucesso!");

	}
	
	public void listar()
	{
		for(Cadastro cad:cagenda)
			System.out.println(cad);
	}
	
	public void listarOrdenado()
	{
		Collections.sort(agenda);
		for(Cadastro cad:agenda)
			System.out.println(cad);
	}
	
}

falta alguma coisa no metodo ler ??

public void listar() { for(Cadastro cad:agenda) System.out.println(cad); }

fuadksd esse metodo so funciona antes de serializar depois de serializado o for so funciona dentro do metodo ler, mas se tentar imprimir em qualquer outro metodo o list sai vazio, dendro do metodo ler eu so coloquei o for para ver se tava lendo o arquivo e ta, mas a lista so contem valores dentro do metodo ler, muito estranho isso

Vo dar uma olhada no código e te dou um retorno.
Posta a sua chamada ao código no java
Digamos o que vc quer chamar no no teu public static void main(String[] args){}

andre consegui resolver colocando o arraylist como static (static ArrayList agenda = new ArrayList (); ), so nao entendi o porque, é como se em algum lugar tivesse dando um new no arraylist, pelo menos é a unica alternativa q vejo pra imprimir dentro do metodo e nao fora, mas valeu.

andre, achei o problema as duas classes q postei estao corretas, eu tenhu uma terceira classe que contem um menu com switch, quando chama uma nova instancia da classe opcaomenu na classe que contem o menu com switch ele da um new no list e zera, mas valeu pela ajuda.

bá blz que vc resolveu, é que nem eu falei vc teria de postar onde vc estava chamando ai ficava facil do cara entender o código e ver o problema.
Mas tranquilo.
Flw!!