Сериализация Java многомерного массива

Приложения, которые реализуют их собственные языки сценариев часто, делают это. Например, серверы баз данных часто компилируют хранимые процедуры (или запросы) этот путь.

14
задан littleK 23 September 2009 в 16:35
поделиться

1 ответ

Массивы в 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
20
ответ дан 1 December 2019 в 13:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: