PDA

View Full Version : Java: serializzazione di oggetti, problema!!


dooka
08-07-2004, 19:59
Buonasera a tutti,
ho un problema urgente da risolvere, possibilmente entro le 9 di domattina (chi ha orecchie per intendere intenda ;-p).

Ho quasi finito il progetto della Battaglia Navale, mi mancano solo le funzioni di caricamento/salvataggio della partita: non riesco però a salvare (o a caricare, non ho ancora capito bene) i dati necessari al corretto proseguimento del programma.

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?

Savio3000+
08-07-2004, 20:41
Originariamente inviato da dooka
Buonasera a tutti,
ho un problema urgente da risolvere, possibilmente entro le 9 di domattina (chi ha orecchie per intendere intenda ;-p).

Ho quasi finito il progetto della Battaglia Navale, mi mancano solo le funzioni di caricamento/salvataggio della partita: non riesco però a salvare (o a caricare, non ho ancora capito bene) i dati necessari al corretto proseguimento del programma.

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?


se sei cosi' gentile da mettermi il main dove richiami tutto cio'.. grazie...

poi:
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;
}
--------------------------------------------------------
Stai scherzando o che?, se tu loadi un file di oggetti devi ricreare un player matrix.. etc.. etc.. non passarlo come metodo.. bah!

Riguarda un po' di cose... :confused: