java二维数组反序列化
时间: 2023-10-02 09:14:14 浏览: 118
java反序列化利用
Java中的二维数组可以通过序列化和反序列化来进行对象的存储和恢复。下面是一个示例:
```java
import java.io.*;
public class ArraySerialization {
public static void main(String[] args) throws IOException, ClassNotFoundException {
int[][] arr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
// 序列化
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(arr);
// 反序列化
ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray());
ObjectInputStream ois = new ObjectInputStream(bis);
int[][] arr2 = (int[][]) ois.readObject();
// 验证
for (int i = 0; i < arr2.length; i++) {
for (int j = 0; j < arr2[i].length; j++) {
System.out.print(arr2[i][j] + " ");
}
System.out.println();
}
}
}
```
输出结果为:
```
1 2 3
4 5 6
7 8 9
```
在这个示例中,我们使用了ByteArrayOutputStream和ByteArrayInputStream来将二维数组序列化和反序列化为字节数组。序列化过程中,我们先创建了一个ByteArrayOutputStream对象,然后将其传给ObjectOutputStream的构造函数,接着调用writeObject方法将数组写入到字节数组中。
反序列化过程中,我们先创建了一个ByteArrayInputStream对象,然后将其传给ObjectInputStream的构造函数,接着调用readObject方法将字节数组恢复为一个二维数组。最后,我们验证了反序列化的结果。
阅读全文