多维数组的Java序列化

标签 java arrays serialization vector

Java 中的二维数组是否可以序列化?

如果没有,我希望将 3x3 二维数组“转换”为 vector 的 vector 。

我一直在研究 vector ,但我仍然不确定如何表示它。谁能帮帮我?

谢谢!

最佳答案

Java 中的数组是可序列化的 - 因此数组的数组也是可序列化的。

但是,它们包含的对象可能不是,因此请检查数组的内容是否可序列化 - 如果不是,请使其成为可序列化的。

这是一个使用整数数组的示例。

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

关于多维数组的Java序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1467193/

相关文章:

serialization - jquery ajax序列化问题

java - 获取 org.hibernate.MappingException : No Dialect mapping for JDBC type: -4 exception?

java - Android - 通过 TextView 将文本从一个类传递到另一个类

c++ - 将逗号分隔的文本文件读入数组

Clojure数组的性能问题

php - 使用函数访问 PHP 数组元素?

java - 如何将html页面导出为pdf格式?

java - 使用上下文菜单从 Android 中的 SQLite 数据库中删除

c++ - 使用虚拟继承对多态类使用 Cereal 进行序列化

java - 序列化问题