Java serialization of multidimensional array

前端 未结 1 375
栀梦
栀梦 2020-12-01 13:04

Is it possible to make a 2D array in java serializable?

If not, i am looking to \"translate\" a 3x3 2D array into a Vector of Vectors.

I have been playing ar

相关标签:
1条回答
  • 2020-12-01 13:45

    Arrays in Java are serializable - thus Arrays of Arrays are serializable too.

    The objects they contain may not be, though, so check that the array's content is serializable - if not, make it so.

    Here's an example, using arrays of ints.

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

    Output:

    Before serialization
    1
    2
    3
    4
    After serialization
    1
    2
    3
    4
    
    0 讨论(0)
提交回复
热议问题