Se posso darti un consiglio, evita di serializzare Vector. Dovrebbero già essere Serializable, da documentazione... comunque comportano qualche problema (almeno nella trasmissione via Socket).
Se proprio vuoi salvare la lista di oggetti, trasformala in un array (è una baggianata) e salva l'array (o una classe che lo contiene).
Ricostruire il Vector a partire dall'array è l'operazione inversa, che è altrettanto semplice.
Prova a postare la classe che hai reso Serializable, in caso tu non intenda usare gli array...
In ogni caso io ho sviluppato al volo queste classi che funzionano:
Classe Prova.java (oggetto salvato nel Vector)
codice:
public class Prova implements Serializable {
private String testo;
public Prova(String testo) { this.testo = testo; }
public void setText(String testo) { this.testo = testo; }
public String getTesto() { return testo; }
}
Classe Salva.java (Si occupa di creare il Vector e salvarlo nel file)
codice:
import java.io.*;
import java.util.*;
public class Salva {
public static void main(String [] args) throws Exception {
Vector v = new Vector();
ObjectOutputStream oos = new ObjectOutputStream( new FileOutputStream("Dati.dat") );
for (int i=0; i<50; i++) {
v.add( new Prova("Testo di indice " + i) );
}
oos.writeObject( v.clone() );
}
}
Classe Apri.java (legge il file salvato e stampa il contenuto di ciascun oggetto nel vettore:
codice:
import java.io.*;
import java.util.*;
public class Apri {
public static void main(String [] args) throws Exception {
Vector v;
ObjectInputStream ois = new ObjectInputStream( new FileInputStream("Dati.dat") );
v = (Vector) ois.readObject();
if (v != null) {
for (int i=0; i<v.size(); i++) {
System.out.println( ((Prova)v.elementAt(i)).getTesto() );
}
}
}
}
Ciao.