2009-09-23 18 views
12

E 'possibile rendere serializzabile un array 2D in java?Serializzazione Java dell'array multidimensionale

In caso contrario, sto cercando di "tradurre" un array 2D 3x3 in un vettore di vettori.

Ho giocato con i vettori, e sono ancora incerto su come rappresentarlo. Qualcuno può aiutarmi?

Grazie!

risposta

18

Gli array in Java sono serializzabili, quindi anche gli array di array sono serializzabili.

Gli oggetti che contengono potrebbero non essere, quindi, quindi controllare che il contenuto dell'array sia serializzabile - in caso contrario, fallo.

Ecco un esempio, utilizzando matrici di interi.

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); 
     } 
    } 
} 

uscita:

Before serialization 
1 
2 
3 
4 
After serialization 
1 
2 
3 
4 
+0

Hm, va bene. Il mio array multidimensionale non contiene nient'altro che interi, ma sono contento di sapere che l'array stesso è effettivamente serializzabile, grazie ... – littleK

+0

Funziona con ints per me - non sono sicuro del motivo per cui vedi un problema. In bocca al lupo! – Brabster

Problemi correlati