Asi guardo los objetos:
Código
ganadores.add(j); if( f.exists()){ salida.writeObject(ganadores); salida.close(); } else { salida.writeObject(ganadores); salida.close(); } y asi los leo: public String recuperar() throws FileNotFoundException, IOException, EOFException, ClassNotFoundException, StreamCorruptedException { //ObjectInputStream entrada=null; int i=0; try { ganadores = (ArrayList<Jugador>) entrada.readObject(); entrada.close(); try { while (true) { i++; ganadores = (ArrayList<Jugador>) entrada.readObject(); } return ganadoress; } Clase miObjectOutputStream: @Override //nada } super(); } // TODO Auto-generated constructor stub super(fileOutputStream); }