Les tableaux en Java sont sérialisables - ainsi les tableaux de tableaux sont également sérialisables. Cependant, les objets qu'ils contiennent peuvent ne pas être vérifiés, alors vérifiez que le contenu de la matrice est sérialisable. Si ce n'est pas le cas, faites-le.
Voici un exemple, en utilisant des tableaux d'entiers.
public static void main(String[] args) {
int[][] twoD = new int[][] { new int[] { 1, 2 },
new int[] { 3, 4 } };
int[][] newTwoD = null; // will deserialize to this
System.out.println("Before serialization");
for (int[] arr : twoD) {
for (int val : arr) {
System.out.println(val);
}
}
try {
FileOutputStream fos = new FileOutputStream("test.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(twoD);
FileInputStream fis = new FileInputStream("test.dat");
ObjectInputStream iis = new ObjectInputStream(fis);
newTwoD = (int[][]) iis.readObject();
} catch (Exception e) {
}
System.out.println("After serialization");
for (int[] arr : newTwoD) {
for (int val : arr) {
System.out.println(val);
}
}
}
Sortie:
Before serialization
1
2
3
4
After serialization
1
2
3
4
Hm, d'accord. Mon tableau multidimensionnel ne contient que des entiers, mais je suis heureux de savoir que le tableau lui-même est effectivement sérialisable, merci ... – littleK
Fonctionne avec ints pour moi - je ne sais pas pourquoi vous voyez un problème. Bonne chance! – Brabster