2009-09-23 8 views
12

Est-il possible de créer un tableau 2D en java sérialisable? Sinon, je cherche à "traduire" un tableau 2D 3x3 en un Vecteur de vecteurs.Sérialisation Java d'un tableau multidimensionnel

J'ai joué avec des vecteurs, et je ne sais toujours pas comment le représenter. Quelqu'un peut-il m'aider?

Merci!

Répondre

18

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 
+0

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

+0

Fonctionne avec ints pour moi - je ne sais pas pourquoi vous voyez un problème. Bonne chance! – Brabster

Questions connexes