List e Arquivo serializado.... ajuda

Ae galera, to com um problema no meu projeto.
O que ele faz é o seguinte: Jogo cada objeto do arquivo serializado dentro de cada alocação de uma ArrayList.
Depois retorno a lista.

Mais não estou conseguindo fazer funcionar…
Vo coloca o Codigo aqui, e me ajudem por favor.
aqui é o metodo que insere do arquivo para a lista

public void geraMedico(List<Medico> medicos) { Medico medico; //Objeto da classe medico try { ObjectInputStream medic = new ObjectInputStream(new FileInputStream("Medico.bin")); medicos = new ArrayList<Medico>(); do { medico = (Medico) medic.readObject();//medico recebe um objeto do arquivo medicos.add(medico); } while (true); } catch (Exception e) { System.err.println("Num leu"); e.printStackTrace(); } }

Ai em outro metodo eu chamo chamo o geraMedico:

geraMedico(medicos)

Eu estou instanciando a Lista “medicos” no metodo que eu chamo a função. será q issu que esta errado??

Vlwz galera!!!

opa galeraa!!

Ja consegui arruma!!

HauhaUhAuhAuaH

Vlwz!!!

É bom lembrar que o java só passa parâmetros por valor.

Por isso, quando você fez:
medicos = new ArrayList<Medico>();

Você estava, na verdade, alterando uma cópia da referência à lista de médicos. No método original, o valor dessa cópia continua inalterado. Isso significa que a nova lista não é atribuída a variável médico no código que chamou a função.

O correto mesmo seria você usar a lista que a pessoa passou no parâmetro, ao invés de criar uma. Ou retornar a lista criada pelo método, através de uma função. Eu geralmente prefiro a segunda opção:

public List&lt;Medico&gt; geraMedico(String fileName) { try { ObjectInputStream medic = new ObjectInputStream(new FileInputStream(fileName)); List&lt;Medico&gt; medicos = new ArrayList&lt;Medico&gt;(); //Criamos a lista aqui dentro do { Medico medico = (Medico) medic.readObject(); medicos.add(medico); } while (true); //Esse while tá esquisito. } catch (Exception e) { System.err.println("Num leu"); throw new RuntimeException(e); //Nada de ignorar exceções! } return medicos; //Retornamos a lista ao final }

Depois, no método original

List<Medico> medicos = geraMedicos("medicos.bin");

epassagem, também tenho dificuldade manipular arquivo, tem como vc postar seu codigo para estudo

Alguém sabe alguma maneira de ler os objetos serializados sem ter que colocar num ArrayList ou Vector, gostaria de percorrer o arquivo, todo.