2009-09-23 105 views
12

是否有可能在java可序列化中製作二維數組?多維數組的Java序列化

如果不是,我正在尋找「翻譯」一個3x3二維數組成矢量矢量。

我一直在玩矢量,我仍然不確定如何表現。誰能幫我?

謝謝!

回答

18

Java中的數組是可序列化的 - 因此數組的數組也是可序列化的。

但是,它們包含的對象可能不是,所以請檢查數組的內容是否可序列化 - 如果沒有,請將其設置爲如此。

下面是一個使用int數組的示例。

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

輸出:

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

嗯,還好。我的多維數組只包含整數,但我很高興知道數組本身確實是可序列化的,謝謝... – littleK 2009-09-23 16:44:29

+0

適用於我的整數 - 不確定爲什麼看到問題。祝你好運! – Brabster 2009-09-23 17:01:03