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 ??