PDA

Visualizza la versione completa : Serializzazione oggetti e salvataggio dati


Phage
08-07-2004, 21:10
Buonasera a tutti,
ho un problema urgente da risolvere, possibilmente entro le 9 di domattina, spero che siate così gentili da volermi dare una mano :zizi: .

Non riesco a salvare (o a caricare, non ho ancora capito bene perchè dopo che ho salvato è effettivamente presente un file, però il caricamento non funziona) una serie di dati necessari al corretto proseguimento di un programma di battaglia navale testuale.

Quello che più precisamente sto cercando di fare è salvare tre array bidimensionali di caratteri e due oggetti Vector in un unico file tramite serializzazione degli oggetti.
Questo è il codice dei due metodi:


Caricamento:

public static void loadGame (String token, char[][] playerMatrix, char[][] shootMatrix,
char[][] cpuMatrix, Vector playerShips, Vector cpuShips) throws IOException, ClassNotFoundException
{
FileInputStream inFile = new FileInputStream(token);
ObjectInputStream inStream = new ObjectInputStream(inFile);

playerMatrix = (char[][])inStream.readObject();
shootMatrix = (char[][])inStream.readObject();
cpuMatrix = (char[][])inStream.readObject();
playerShips = (Vector)inStream.readObject();
cpuShips = (Vector)inStream.readObject();
inStream.close();
return;
}


Salvataggio:

public static void saveGame (String token, char[][] playerMatrix, char[][] shootMatrix,
char[][] cpuMatrix, Vector playerShips, Vector cpuShips) throws IOException
{
FileOutputStream outFile = new FileOutputStream(token);
ObjectOutputStream outStream = new ObjectOutputStream(outFile);

outStream.writeObject(playerMatrix);
outStream.writeObject(shootMatrix);
outStream.writeObject(cpuMatrix);
outStream.writeObject(playerShips);
outStream.writeObject(cpuShips);
outStream.close();
return;
}


Qualche anima pia mi saprebbe dire il prima possibile perchè questo aggeggio non mi carica la roba? :rollo:

LeleFT
08-07-2004, 21:52
Non sono sicuro che gli array siano serializzabili di default... prova ad includere ciascun array in una classe che implementa Serializable o, per fare una cosa cumulativa, includili tutti in una classe che implementa Serializable. Quindi prova a salvare un oggetto di tale classe.


Ciao. :ciauz:

blinkago
08-07-2004, 22:18
Originariamente inviato da LeleFT
Non sono sicuro che gli array siano serializzabili di default... prova ad includere ciascun array in una classe che implementa Serializable o, per fare una cosa cumulativa, includili tutti in una classe che implementa Serializable. Quindi prova a salvare un oggetto di tale classe.


Ciao. :ciauz:

Gli array di char non sono serializzabili in quanto primitive del linguaggio e non oggetti...

mi associo al consiglio di leleFT

Loading