Sérialiser un tableau à 2 dimensions
Bonjour à tous,
Je voudrais savoir si il est possible de sérialiser un tableau à 2 dimensions contenant des objets de type autres que ceux de Java (String, Integer, ...) car j'ai essayer mais ça ne marche pas.
Merci
Sérialiser un tableau à 2 dimensions
Bonjour à tous,
Je voudrais savoir si il est possible de sérialiser un tableau à 2 dimensions contenant des objets de type autres que ceux de Java (String, Integer, ...) car j'ai essayer mais ça ne marche pas.
Pour la sérialisation du tableau dans un fichier je ne rencontre aucune erreur mais lors de la désérialisation j'ai une erreur ArrayIndexOutOfBoundsException car en fait le tableau n'a pas été sérialisé finalement.
Code:
1 2 3 4 5
| import java.io.Serializable;
public class Personne implements Serializable {
...
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
| import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class Serial {
static Personne[][] tableau;
Serial(){
...
}
/**
* Sauvegarde le tableau sous forme sérialisée dans le fichier serial.
*/
static void serialiser(){
try {
FileOutputStream fichier = new FileOutputStream("serial");
try {
ObjectOutputStream oos = new ObjectOutputStream(fichier);
try {
oos.writeObject(tableau);
oos.flush();
}
finally {
oos.close();
}
}
finally {
fichier.close();
}
}
catch (IOException e){
e.printStackTrace();
}
}
/**
* Désérialise le tableau sérialisé dans le fichier serial.
*/
void deserialiser(){
try {
FileInputStream fichier = new FileInputStream("serial");
try {
ObjectInputStream ois = new ObjectInputStream(fichier);
try {
tableau = (Personne[][])ois.readObject();
}
finally {
ois.close();
}
}
finally {
fichier.close();
}
}
catch (IOException ioe){
ioe.printStackTrace();
}
catch (ClassNotFoundException cnfe){
cnfe.printStackTrace();
}
}
} |
Merci